C语言,关于函数递归有两个return和两个函数入口的问题(保姆级讲解)

  • 第一个博客原创文章,可能写的不是很好,请大家多多包涵,多多支持,你们的支持是我创作的动力!
  • 前言:
  • 学过C语言函数递归的伙伴们,应该知道函数递归是一个函数重复调用自己的过程,可以通过函数体里的某个条件成立时,把函数名和函数参数传进去,达到重新进入进入函数的目的,这样就实现了所谓的函数递归,也可以用return关键字返回到函数中实现递归
  • 正题
  • 关于两个return和两个函数入口的问题,我们用一个简单的问题:求出第n个斐波那契数来进行演示。
  • 如何求第n个斐波那契数?
  • 以下是我写出的简单代码(头文件调用已省略,且是在VS环境下编译)
  • watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oOz5YGa5riX6YCP55qE5p2o,size_20,color_FFFFFF,t_70,g_se,x_16
  • 因为当时写的着急用Print函数来封装了一个斐波那契数的函数,与其英文含义不符,请大家见谅,为了方便下文写的函数名称均用print。
  • 首先,先输入一个数,这里我引三个数字的例子来说明。
  • 当i等于3时,if判断不成功,进入else。先进入print(i-2)等于1,if表达式判断成功,返回结果1,后退出print(i-2)。再进入print(i-1),这时i还是输入的3,进入print(i-1)之后,if判断成功,返回1,这时i没有办法再进入任何函数,则将结果通过return返回出来。
  • 当i等于4时,还是先进入print(i-2)4-2得2,进入if返回1,退出print(i-2),进入print(i-1),此时i为4-1=3,进入print(i-2),if判断后返回1,退出print(i-2),进入print(i-1),这时i等于3-1=2,if判定成功返回1,这时i=3不能再进入任何函数,开始逐级退出。i等于3时返回两个1,i等于4时返回一个1,将返回的1相加后通过return返回。
  • 当i等于5时,进入print(i-2)5-2得3,再进入函数print(i-2),if判断成功,返回1,退出来,i以3的结果进入print(i-1),if判别成功返回1;这样i=3不能再进入函数,退到i=5这步,进入print(i-1),i=4进入print(i-2),if判定成功,返回1,进入print(i-1),i=3,进入print(i-2),返回1,退出,进入print(i-1)返回1,这样全部可能的值都不能在进入函数了,开始逐级退出,将返回的1相加,通过return返回。
  • 全文结束,由于第一次发布博客,写的可能有点啰嗦,希望多多支持哈

 

 

 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习算法的杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值