永发信息网

fibonacci数列c语言问题

答案:3  悬赏:10  手机版
解决时间 2021-12-31 22:15
  • 提问者网友:蓝莓格格巫
  • 2021-12-31 12:34
#include
long f(int y)
{ if(y= =1|| y= =2)
return 1;
else
return f(y-1)+f(y-2);
}
main( )
{ long x,long f(int y);
x=f(4);
printf(“f(4) is %ld\n”,x);
}
请问这个最后执行出来f(4)是多少
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-12-31 13:50
显然是3呀:第一项和第二项都是1,所以第三项是2,第四项就是3啦,执行结果也对!不过你的程序有错误:
#include
long f(int y)
{ if(y= =1|| y= =2)//"=="中间不能有空格
return 1;
else
return f(y-1)+f(y-2);
}
main( )
{ long x,long f(int y);//long x后面应该是“;”而不是“,”,或者说long f(int y);这个生命可以去掉

x=f(4);
printf(“f(4) is %ld\n”,x);
}
全部回答
  • 1楼网友:七十二街
  • 2021-12-31 14:21

#include "stdio.h"

void main() {  int n,a=1,b=1,c,i;  printf("输入n(>2):");  scanf("%d",&n);  for(i=3;i<=n;i++)  {   c=a+b;   a=b;b=c;  }  printf("%d\n",c);

}

  • 2楼网友:青灯有味
  • 2021-12-31 14:08
首先你的程序有些许问题: 修改后: #include long f(int y) { if(y==1|| y==2) return 1; else return f(y-1)+f(y-2); } main( ) { long x,long f(int y); x=f(4); printf("f(4) is %ld\n",x); } ------------------------- 运行结果:f(4) is 3
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯