以下是獲得電源(數學)的代碼。我對電源遞歸功能感到困惑
- 我很困惑,它看起來像每一個問題劃分爲一個子問題,每個大小兩個人,一個是因爲,通常是一個遞歸「樹」,你需要兩個遞歸調用它沒有形成一個樹。只有一次遞歸調用就像一個簡單的列表。但它是一個遞歸函數,階乘和許多其他遞歸函數形成樹,並且它們的遞歸看起來相同。
2.如果它正在形成一棵樹,那麼它是橫穿所有路徑還是單一路徑?
public int GetPower(int k, int n)
{
if (n == 0)
{
return 1;
}
else {
int t = GetPower(k, n/2);
if((n%2)==0)
{
return t*t;
}
else{
return k*t*t;
}
}
}
請幫助我,我的困惑需要一些解釋。
編輯
(2,20) -> (2,10) -> (2,5) -> (2,2) -> (2,1) -> (2,0)
1048576 <- 1024 <- 32 <- 2^4*2 <- 2*2 <- 2 <- 1
'階乘等衆多遞歸函數形成trees'錯誤 – SLaks
1.你在說什麼? – SLaks
@SLaks所以它沒有形成一棵樹? – Charlie