问答详情
源自:5-7 递归函数(一)

例题中的else if (n==0|| n==1)中为什么要写n==0?当n到 factorial(2-1)*n 是不就已经结束接下去就是 return 吗?


题目就是问题·~~求大神们解释下~递归真的有点绕···

提问者:世界太乱挂了咋办 2016-02-06 21:12

个回答

  • vialook
    2016-05-03 18:15:48

    n==0是当你在主函数调用时,应对实参值为0的情况的。其实把这俩分开你就可以理解了。

    else if (n == 0)

    {

        return 1;

    }

    else if (n == 1)

    {

       return 1;

    }

    想必这么久了,应该早就想通了吧。

  • 侠客岛的含笑
    2016-02-17 22:35:36

    0的阶乘是1,还有n=1和0的时候呢不会直接return的

  • 我若有情天亦老
    2016-02-11 23:31:26

    0的阶乘是1,factorial(2-1)*n等于2*1(2的阶乘)