Module: 子程序。递归


Problem

1/12

递归。这是什么?

Theory Click to read/hide

一个过程或函数可以包含对另一个过程的调用。其中,子程序可以调用自身。在这种情况下,计算机不关心。他一如既往,从上到下始终如一地执行他遇到的命令。

如果你记得数学,那么在那里你可以满足数学归纳法的原理。如下所示: 某些陈述对于每个自然 n 如果
    1) 它对 n = 1有效;
    2) 从对任意自然 n = k 的陈述的有效性来看,它对  n = k+1 为真。

在编程中,这种技术称为递归。

递归 是一种根据给定的简单基本情况根据集合本身定义一组对象的方法。

递归 是直接或通过其他过程和函数调用自身的过程(函数)。
递归过程的例子:

void Rec(int a)
{
 如果 (a>0) { Rec(a-1);
 控制台.WriteLine(a);
}

从原理上讲,递归的工作可以用流程图表示。

 
Rec() 过程是带参数执行的3 然后,在参数为 3 的过程内部,调用参数为 2 的过程,依此类推,直到调用参数为 0 的过程。然后控制权返回给参数为 1 的过程,它也通过打印数字 1 来完成它的工作,依此类推。在带有参数 3 的过程之前。 

所有被调用的过程都存储在内存中,直到它们完成它们的工作。并发过程的数量称为递归深度

Problem

使用解析后的程序,在主程序中添加必要的行。
理解为什么程序会给出这样的响应。