时间限制:5 秒
内存限制:32 兆
特殊判题:否
提交:3517
解决:2028
- 题目描述:
-
编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如样例输出的斐波那契数列。
- 输入:
-
一个整型数n
- 输出:
-
题目可能有多组不同的测试数据,对于每组输入数据,
按题目的要求输出相应的斐波那契图形。
- 样例输入:
-
6
- 样例输出:
-
0 0 1 1 0 1 1 2 3 0 1 1 2 3 5 8 0 1 1 2 3 5 8 13 21 0 1 1 2 3 5 8 13 21 34 55
这题可以直接按题意写个递归,也可以直接预处理。
递归比预处理要慢一点。
代码如下(注释的那几句就是直接用递归的方法):
//Asimple #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <cctype> #include <cstdlib> #include <stack> #include <cmath> #include <set> #include <map> #include <string> #include <queue> #include <limits.h> #define INF 0x7fffffff using namespace std; const int maxn = 55; typedef long long ll; int n; ll a[maxn]; //int fun(int n){ // if( n == 0 ) return 0; // else if( n == 1) return 1; // else return fun(n-1)+fun(n-2); //} int main(){ a[0] = 0; a[1] = 1; for(int i=2; i<maxn; i++){ a[i] = a[i-1] + a[i-2]; } while( ~scanf("%d",&n) ){ for(int i=0; i<n; i++){ for(int j=0; j<=2*i; j++){ printf(j==0?"%ld":" %ld",a[j]); //printf("%d",fun(j)); //if( j!=2*i){ //printf(" "); //} } printf(" "); } } return 0; }