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

这个代码看不懂

result=factorial(n-1)*n;

return result;


提问者:weixin_慕仔0029264 2020-02-22 09:07

个回答

  • weixin_慕斯0079486
    2020-02-22 14:26:23
    已采纳

    这个就是调用自身

    在n是5的情况下,

    result=factorial(4)*5

    此时factorila(4)结果未知,继续将factorila(4)代入函数

    ,factorila(3)结果又是未知的,以此类推

    当n==1时,result结果为1,所以

    当n==5时:

    result=factorial(4)*5=factorial(3)*4*5=factorial(2)*3*4*5=factorial(1)*2*3*4*5=1*2*3*4*5=120


  • weixin_慕少9328968
    2020-07-18 12:54:19

    进行四次递归调用后,实参的值为 1,会调用 factorial(1)。此时能够直接得到常量 1 的值,并把结果 return,就不需要再次调用 factorial() 函数了,递归就结束了