- 第一个博客原创文章,可能写的不是很好,请大家多多包涵,多多支持,你们的支持是我创作的动力!
- 前言:
- 学过C语言函数递归的伙伴们,应该知道函数递归是一个函数重复调用自己的过程,可以通过函数体里的某个条件成立时,把函数名和函数参数传进去,达到重新进入进入函数的目的,这样就实现了所谓的函数递归,也可以用return关键字返回到函数中实现递归
- 正题
- 关于两个return和两个函数入口的问题,我们用一个简单的问题:求出第n个斐波那契数来进行演示。
- 如何求第n个斐波那契数?
- 以下是我写出的简单代码(头文件调用已省略,且是在VS环境下编译)
- 因为当时写的着急用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返回。
- 全文结束,由于第一次发布博客,写的可能有点啰嗦,希望多多支持哈