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;
	}
}

提示

这是一道递归的入门题,同时也是一道经典的递归的糟糕应用形式,不过由于其数学特性明显,用来作为概念入门再合适不过。

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题