如何编写递归函数?你能解释一下函数递归的原理吗,理想情况下是像阶乘或斐波纳契序列这样的例子吗?
答案 0 :(得分:1)
例如Python中的这种方式:
def f( num ):
if num == 0:
return 1
return num * f( num-1 )
这是Factorial的例子。
通常,您不仅返回一些值,甚至还返回函数本身,因此它将使用另一个参数再次运行。最终它会停止沉浸,当你只返回一个值而不进一步调用函数时(这里我们返回1作为塞子)。
对于num=3
,它将是这样的:
f(3)
|
return 3 * f(2)
|
return 2 * f(1)
|
return 1 * f(0)
|
return 1
最后它倒退了,所以:
1 * 1 = 1
|
1 * 2 = 2
|
2 * 3 = 6
这是我们的因素: - )
答案 1 :(得分:0)
如果我正确理解了这个问题,可以在C#中按如下方式计算第二笔金额。
public static Sum(int n)
{
if ( n == 0 ) // end of recursion, so-called "base case"
{
return 0;
}
else // recursion
{
return n * n + Sum(n-1);
}
}
答案 2 :(得分:0)
基本模式是
function(arg)
if baseCase
return fixedValue
else
modify arg
return function(newArg)
所以权力范例
function int pow(int num) {
if (num == 0 ) return 1;
else return num ^ 2 + pow(--num);
}