C语言 递归调用 解说
发布网友
发布时间:2023-08-03 21:58
我来回答
共4个回答
热心网友
时间:2024-12-15 03:14
这个递归函数
的功能
是
传入的值
如果为
1
那么
就返回1
如果不为1
那么执行递归
a
=
n+f(n-1)其实
就是
执行
f(n-1)
return
a永远都不会执行
因为
如果
传入的N不等于1
就一直调用f
直到等于1的时候
返回1
热心网友
时间:2024-12-15 03:14
首先i=5,那么调用f(5),函数中:f(5)=5+f(4),把结果保存到a,但是f(4)又是一个函数,所以f(4)=f(3)+4……以此类推,直到n=1(那么直接返回1)了。这个时候,系统自动向前回溯——
f(2)=f(1)+2=>f(1)=1,因此f(2)=3
f(3)=f(2)+3=>f(3)=6
f(4)=f(3)+4=>10
f(5)=f(4)+5=>15
热心网友
时间:2024-12-15 03:14
问题1:
a=n+f(n-1);
这句是不是把结果储存到a,
是的,就是用临时变量a存储返回值,事实上完全可以写作return
n+f(n-1);不需要a的
问题2:
当n减到1的时候函数返回的是1啊,没有返回a。
这个就直接返回了1.如果你要用a也可以,a=1;
return
a;
这样就完全一样了
热心网友
时间:2024-12-15 03:15
这是
用递归
求从1+到5的和。
f(n)返回值是从5依次到1.
入参是递减的,递减到1时
直接返回1.