【100题】第十九题(斐波那楔数列)
一,题目:输入n用最快的方法求Fibonacci数列的第n项。
二,定义:Fibonacci数列如下:
0 n=0
f(n)= 1 n=1,2
f(n-1)+f(n-2) n>2
//0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 9871597..........
三,分析:
注意,当求第100项,甚至更大的项时,请确保你用什么类型,长整型?orlong long int存储。
不然,计算机,将得不到结果。所以选择的数据类型是关键。
四,源码:
#include <iostream> using namespace std; long long Fibonacci(int n) { if(n>=0) { if(0==n) return 0; else if(1==n||2==n) return 1; else return Fibonacci(n-1)+Fibonacci(n-2); } } int main() { for(int i=0;i<10;i++) cout<<Fibonacci(i)<<endl; return 0; }