我想知道在递归中是否有可能从前一个调用函数传递一个参数。
我可以使用return来成功吗?
例如在新的递归中我会保留前一个字符串。
答案 0 :(得分:2)
虽然从你的问题中未清除,但显然可以在使用递归函数时传递来自前一个调用函数的参数。
递归是以自相似方式重复项目的过程。对于 例如,当两个镜子的表面完全平行时 彼此发生的嵌套图像是无限的形式 递归。该术语具有各种特定的各种含义 从语言学到逻辑学的学科。最普遍的 递归的应用是在数学和计算机科学中 它指的是一种定义函数的方法 定义的函数在其自己的定义中应用。 具体来说,这定义了无数个实例(函数 值),使用有限的表达式,在某些情况下可能会引用 到其他实例,但是没有循环或无限链 可以发生参考。该术语也更常用于 描述以自相似的方式重复对象的过程。
<强>实施例强>
•河内的塔楼
•向后编写链接列表
•递归插入
•8皇后
•识别简单语言
•前缀表达式
•转换前缀到后缀
以递归方式计算数字的阶乘的简单示例。
unsigned int factorial(unsigned int n)
{
if (n <= 1)
return 1;
else
return n * factorial(n-1);
}
该函数在输入的较小版本(n-1)上递归调用自身,并将递归调用的结果乘以n,直到达到基本情况,类似于阶乘的数学定义。
在使用递归函数时,您总是需要通过在函数中强加一些if
条件等机制来明确地中断该函数,否则调用将永远不会返回。
答案 1 :(得分:1)
void recursive(int* data)
{
//TODO: do something useful, for now just increment by one;
*data+=1;
if (*data>99)
{
return;
}
else
{
recursive(data);
}
}