1796 - Fibonacci数列
无穷数列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数
输入/输出样例
题目输入
3 1 3 5
题目输出
1 2 5
提示
这是一道递归的入门题,同时也是一道经典的递归的糟糕应用形式,不过由于其数学特性明显,用来作为概念入门再合适不过。
C语言解答
#include <stdio.h> int fib(int n){ if(n<=2) return 1; return fib(n-1)+fib(n-2); } int main(){ int n, m; scanf("%d", &n); while(n--){ scanf("%d", &m); printf("%d\n", fib(m)); } return 0; }
C++解答
#include<iostream> using namespace std; int main(){ int m; cin>>m; while(m--){ int n,i,a[21]={0}; for(i=1;i<21;i++){ if(i==1 || i==2) a[i]=1; else a[i]=a[i-1]+a[i-2]; } cin>>n; cout<<a[n]<<endl; } }
提示
这是一道递归的入门题,同时也是一道经典的递归的糟糕应用形式,不过由于其数学特性明显,用来作为概念入门再合适不过。