递归

栈的调用虽然很方便,但是需要大量的栈空间来存储函数的调用


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的值


首页 我的博客
粤ICP备17103704号