- 描述
- 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为 F(n)=1 ...........(n=1或n=2) F(n)=F(n-1)+F(n-2).....(n>2) 现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
- 输入
- 第一行是一个整数m(m<5)表示共有m组测试数据 每次测试数据只有一行,且只有一个整形数n(n<20) 输出
- 对每组输入n,输出第n个Fibonacci数 样例输入
-
3135
样例输出 -
125
1 /*法一 2 #include
3 int F(int n) { 4 if(n == 1 || n == 2) { 5 return 1; 6 } 7 else { 8 return F(n - 1) + F(n - 2); 9 }10 }11 12 int main( ) {13 int m, n;14 scanf("%d", &m);15 while(m--) {16 scanf("%d", &n);17 printf("%d\n", F(n));18 }19 return 0;20 }21 */22 #include 23 int main( ) {24 int m, n, i, s1, s2;25 scanf("%d", &m);26 while(m--) {27 scanf("%d", &n);28 for(i = 3, s1 = s2 = 1; i <= n; i ++) {29 s1 = s1 + s2;30 s2 = s1 - s2;31 }32 printf("%d\n", s1);33 }34 return 0;35 }