栈的调用虽然很方便,但是需要大量的栈空间来存储函数的调用
static void Main(string[] args)
{
Console.WriteLine(Mul(5));
Console.ReadKey();
}
//计算1到n的累积
static int Mul(int n) {
if (n == 1) {
return 1;//等于1的时候就该退出啦
}
return n * Mul(n - 1);
}递归主要就是自己调用自己,提供一个出口来退出,停止自己调用自己
说下 n * Mul(n - 1) ,例如这里的 5
5*Mul(4) = 5*4*Mul(3) = 5*4*3*Mul(2) = 5*4*3*2*Mul(1)
这时候最后一个Mul(1)直接返回的1,没有调用自己,程序就退出了
返回 5*4*3*2*1的值