问题 D: 斐波拉契数列
题目描述
大家对斐波拉契数列应该不陌生,a[1]=1,a[2]=1,a[3]=2,a[4]=3,a[5]=5,……,a[n]=a[n-1]+a[n-2],要求输出下标在30以内斐波拉契数列的任意元素。
输入
有多组输入,输入30以内的任意数,输入小于等于0的数时结束输入。
输出
把对应下标的数据输出,每组占一行。
样例输入 复制
10
20
30
0
样例输出 复制
55
6765
832040
提示
请用递归完成
#include<stdio.h>
int main()
{
int a[31]={0,1,1};
int n;
int i,j;
int arr[100]={0};
for(j=3;j<=30;j++)
{
a[j]=a[j-1]+a[j-2];
//printf("%d ",a[i]);
}
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
if(arr[i]<=0)
break;
}
for(j=0;j<=i;j++)
{
if(arr[j]<=0)
break;
n=arr[j];
printf("%d\n",a[n]);
}
}