新手一个,搞不懂用c语言写斐波那契数列,假如求第五步,那五个一是怎么返回出来的,递归函数如下
(只写了递归,其他就不写了)int fun(int n)
{
if(n==1 || n==2)
return 1;
else
return fun(n-1) + fun(n-2);
求大神讲解!
2 回答
望远
TA贡献1017条经验 获得超1032个赞
#include<stdio.h> int fun(int n) { //菲波那切数列 1,1,2,3,5,8 //前两项为1,从第三项开始依次是前两项之和 if(n==1 || n==2) //递归结束条件 return 1; //当传入的参数时1或者2时都是返回1(前两项为1) else return fun(n-1) + fun(n-2); //如果不是1或者2,那么采用递归调用将当前项转化为前两项之和 } void main() { printf("第6项是%d\n",fun(6)); //fun(6)=fun(5)+fun(4); //fun(5)=fun(4)+fun(3); //....直到一直递归到fun(1),fun(2) }
- 2 回答
- 0 关注
- 1687 浏览
添加回答
举报
0/150
提交
取消