简单英语中的递归函数

G12*_*123 0 recursion

可能重复:
了解递归

任何人都可以解释一下,简单英语中递归函数实际上是什么吗?

如果你用一个例子说,那将是件好事.

Pet*_*hev 7

三个字 - 它自称.


Gro*_*roo 5

它是一个自我调用的函数,通常在每次迭代中使用不同的参数集.在大多数情况下,它会反复调用自身,直到有一组输入参数将"停止"它.

如果你不确定某个参数集会阻止它,它会永远调用它自己,否则你最终会出现堆栈溢出.:-)

C#中的一个简单示例是:

void PrintPositiveNumbersBackwards(int number)
{
    // this is a condition which stops the recursion
    if (number == 0)
       return;

    Console.WriteLine(number);

    // this is where the function calls itself,
    // with a different (smaller) input parameter
    PrintPositiveNumbersBackwards(number - 1);
}
Run Code Online (Sandbox Code Playgroud)