求大神解释下,简单递归,对简单解释下,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢

求大神解释下,简单递归,对简单解释下,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢

4个回答

 自己调用自己就是递归。
比如
1+2+...+100
传统的写法
int sum(int n)
{
int sum = 0;
for (int i = 100; i > 0; i--) sum+= i;
return sum;
}
递归写法
int sum(int n)
{
if (n == 1) return 1;
return n +sum(n - 1);
}
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 for (int i = 100; i > 0; i--) sum+= i;修改下for (int i =n; i > 0; i--) sum+= i;
接近 2 年之前 回复

递归就是入栈,首先得有栈的思想,深度研究就要讲到内存,从汇编的角度,函数参数用r0.r1,表示,局部变量按顺序存放在栈空间,递归就是反复嵌套本函数,但实质上,无非就是栈的存取。c语言的思想核心就是内存,字节,学好c语言相当重要,基本功要扎实,为以后学习驱动打好基础。

chenjiebing2016
chenjiebing2016 回复caozhy: 你看的懂内核源码么,你知道什么是驱动么,跟你这种小罗罗真的是浪费我时间。
接近 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 函数调用都要堆栈,递归只是特例,自己调用自己。一般的函数是自己调用另一个函数。说的很玄虚,然而说明你啥基本功都没有。
接近 2 年之前 回复

用java简单的说,就是自己调自己的方法,看过死亡游轮没,就是一直在重复之前的一个过程,在某个情况下就能结束的一种逻辑思维。
这也就是递归与死循环的区别,当然递归的极限就是死循环

递归是循环,更准确的说,是全自动循环。你告诉他一个结果,他自己跑,知道跑出结果为止,自己退出。所以递归的代码一般都比较简洁,但是不太容易懂。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!