老師講的遞歸究竟應(yīng)該怎么理解?
實(shí)例代碼中有這么一段
result?=?factorial(n-1)*n;
這個(gè)應(yīng)該怎理解?當(dāng)時(shí)
int?n?=?5;
那不是應(yīng)該是?
result?=?factorial(5-1)*5;
(接上)最后結(jié)果等于20嗎?
請?jiān)彛也]有學(xué)過數(shù)學(xué)遞歸
實(shí)例代碼中有這么一段
result?=?factorial(n-1)*n;
這個(gè)應(yīng)該怎理解?當(dāng)時(shí)
int?n?=?5;
那不是應(yīng)該是?
result?=?factorial(5-1)*5;
(接上)最后結(jié)果等于20嗎?
請?jiān)彛也]有學(xué)過數(shù)學(xué)遞歸
2016-07-04
舉報(bào)
2016-07-04
應(yīng)該是(n-1)就用掉了一次再減一,又用掉了一次我是這么理解的
2016-07-10
result?=?factorial(5-1)*5;看作是result=(factorial(5-1))*(5);乘號左邊的factorial(5-1)是不是就是factorial(4),怎樣得到factorial(4)呢,這就又調(diào)用自定義函數(shù) int?factorial(int n){ ? },參數(shù)n就變成4了,此時(shí)result?=?factorial(4-1)*4,同理乘號左邊因數(shù)factorial(4-1),即factorial(3)怎么算呢,就又調(diào)用自定義函數(shù),參數(shù)n變?yōu)?,以此類推,實(shí)際上是先算出factorial(1),返回1,返回值帶入函數(shù)中算出factorial(2),再返回factorial(2)的值算出factorial(3),再返回直到算出factorial(5),這就是遞歸的思路。