为了账号安全,请及时绑定邮箱和手机立即绑定

对递归函数(二)的理解

标签:
C
#include <stdio.h>
int getPeachNumber(n)
{
    int num;    //定义所剩桃子数
    if(n==10)
    {
       return 1;       //递归结束条件(同样可以填num = 1,return取不到此处num)
    } 
    else
    {
        num = (getPeachNumber(n+1)+1)*2;   /*递归点使得函数不断积累,一直在这里不断递归至运行到n=10时return 1,此时递归结束,继续向下运行程序,由于输出语句紧接其后大量积累,从而输出从n=9开始输出(n=10时,return 1无输出),自定义函数全部输出完后程序继续向下运行,而在最后递归的n=10中return出1,return出1后继续执行输出语句直到最外层的n=1所对应的num,随后return出num,故最终main函数输出第1天桃子*/
        printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
    }
    return num;//自定义函数运行结果
}
int main()
{
    int num = getPeachNumber(1);//引入点为n=1即第一天时桃子数,根据n的变化自定义函数从不同的起点开始运行,并最终回到起点,从而得到不同n所对应的num
    printf("猴子第一天摘了:%d个桃子。\n", num);
    return 0;
}
点击查看更多内容
9人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消