用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 03:17:12
用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项
用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项
用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项
方法1:
#include "stdio.h"
int fbnq(int d1,int d2,int n)
{
int k;
if(n>3)
{
printf("%d,",d2);
return fbnq(d2,d1+d2,n-1);
}
else
{
printf("%d,",d2);
return d1+d2;
}
}
int main()
{
int d1,d2,n;
d1=2;d2=2;n=10;
/*printf("输入项数:");
scanf("%d",&n);printf("输入前两项:");
scanf("%d %d",&d1,&d2);*/
printf("%d,",d1);
printf("%d",fbnq(d1,d2,10));
}
方法2:
#include "stdio.h"
int fbnq(int d[],int n)
{
int k;
if(n>3)
{
printf("%d,",d[0]+d[1]);
d[1]=d[0]+d[1];d[0]=d[1]-d[0];
return fbnq(d,n-1);
}
else
return d[0]+d[1];
}
int main()
{
int d[2],n;
d[0]=2;d[1]=2;n=10;
/*printf("输入项数:");
scanf("%d",&n);printf("输入前两项:");
scanf("%d %d",&d[0],&d[1]);*/
printf("%d,%d,",d[0],d[1]);
printf("%d",fbnq(d,10));
}