n=5  method(n - 1)=method(4)
进行下一递归
n=4  method(n - 1)=method(3)
进行下一递归
n=3  method(n - 1)=method(2)
进行下一递归
n=2  method(n - 1)=method(1)
进行下一递归
n=1  method(n - 1)=method(0)
结束,跳出递归
120

解决方案 »

  1.   

    当 n=1 时 就直接return 1 了  有没有老师讲的更明白点?就是绕不过来弯,谢谢。
      

  2.   

    ls的都说的很清楚了,lz现在不理解不要紧,随着经验的增加,遇到的机会多起来后自然就明白了
      

  3.   

    额,原理就是不停的调用自身知道参数n为1的时候得出具体数值,然后代入之前的算式开始计算,
    打个比方n=5进入方法体,通过判断执行return n*method(n-1);   但是这时候又出现了method()方法,所以继续调用,且参数为n-1即4n=4,进入方法体,通过判断执行return n*method(n-1); 同上继续调用,参数为3..........
    直到n=1 的时候,进入方法,return 1。而这时候的整个递归过程拆开来的表达式为:return 5*(return 4*(return 3*(return 2*(return 1))))故结果为5的阶乘