C语言函数递归调用?

C语言函数递归调用?,第1张

第一级递归:n=483,i=n/10=48≠0

注意此时先递归调困答用convert(48),待递归返回再输出当前n的个位数字n%10=3

第二级递归:n=48,i=n/10=4≠0

此时继续绝尺橡递归调用convert(4),待递归返回再输出当前n的个位数字n%10=8

第三级递并旁归:n=4,i=n/10=0

此时递归终止,先输出当前n的个位数字n%10=4

再返回上一级递归输出8,最后返回第一级递归输出3

因此最终输出为:4 8 3

我给你举个简单的例察让孝子你就明白了,你可以假设n=3

然后代入这个函数,a(3)=a(2)+5而a(2)=a(1)+5a(1)=1

所以最后就是a(3)=1+5+5=11…

同理败稿你可滑首以算出a(10)=1+5*9=46

满意请采纳

递归有一个堆栈的概念,那就意味着他是一个反理解的过程:就象数学递推一唯指样,你知指绝配道第一项,第二项,又知道通项公式,那你就可以知道任何一项。

然后你看代码:fun(0)==0,fun(1)==1是告诉你一二项。

fun(n)==fun(n-1)+fun(n-2)是告诉你通项公式。那么,你就可以知道任何一项。你这样理解就差不多了,具体机器是怎么 *** 作的,那很复杂宏渣的,也不需要明白!!!!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8232250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存