题目一:求斐波拉契数列的第n项。
写出一个函数,输入n,求斐波拉契(Fibonacci)数列的第n项。斐波拉契数列定义如下:
//斐波拉契数列
#include <iostream>
using namespace std;
//递归实现
long long Fibonacci1(unsigned int n){
if(n<=1){
return n;
}
return Fibonacci1(n-1)+Fibonacci1(n-2);
}
//非递归实现
long long Fibonacci2(unsigned int n){
if(n<=1){
return n;
}
int f1 = 0,f2 = 1,sum;
for(int i=2;i<=n;i++){
sum = f1 + f2;
f1 = f2;
f2 = sum;
}
return sum;
}
int main()
{
//测试数据
for(int i=0;i<=20;i++){
cout<<Fibonacci1(i)<<" ";
}
cout<<endl;
for(int i=0;i<=20;i++){
cout<<Fibonacci2(i)<<" ";
}
cout<<endl;
return 0;
}
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
请按任意键继续. . .
原文:https://www.cnblogs.com/hglibin/p/8975031.html