最代码广告位
感到的二爷的gravatar头像
感到的二爷2019-12-31 17:15:53

c语言如何实现递归算法

c语言如何实现递归算法

所有回答列表(3)
OIUYTQQ2542的gravatar头像
OIUYTQQ2542 LV21月1日

就是函数自己调用自己本身,不要想的太复杂(这里涉及到堆栈的问题,你暂时先不要去管),把每个函数函数想象成一个黑盒,每次调用都是独立的,你只要考虑放入参数,跟取出结果。例如典型的阶乘函数:

int fun1(int index)

{

    int sum = 0;

    if (0 == index){

        sum = 1;

    }else{

        sum = index * fun1(index - 1);

    }

return sum;

}

好好体会一下吧!

acw2000的gravatar头像
acw2000 LV91月2日

所谓递归,就是一个程序不停的循环调用自身,有一个节点终结循环

1朝花夕拾1的gravatar头像
1朝花夕拾1 LV21月7日

 

#include<stdio.h>

int fbnq(int n)

{

if (n <= 2)

return 1;//n=1,2   返还1;

else

return fbnq(n - 1) + fbnq(n - 2);//n>2   返还前两个数之和

}

int main()

int n = 0;

scanf_s("%d", &n);

int ret = fbnq(n);

printf("%d\n", ret);

return 0;

}

顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友