用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/22 00:32:24
![用递归方法求斐波那契数列的2,2,4,6,10,16,26,42,68,110······的第10项](/uploads/image/z/3797505-9-5.jpg?t=%E7%94%A8%E9%80%92%E5%BD%92%E6%96%B9%E6%B3%95%E6%B1%82%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97%E7%9A%842%2C2%2C4%2C6%2C10%2C16%2C26%2C42%2C68%2C110%C2%B7%C2%B7%C2%B7%C2%B7%C2%B7%C2%B7%E7%9A%84%E7%AC%AC10%E9%A1%B9)
用递归方法求斐波那契数列的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));
}