#26568: C++遞迴解


andrew99154 (YuCheng)

學校 : 均一國際教育實驗高級中學
編號 : 145338
來源 : [111.254.45.176]
最後登入時間 :
2024-01-03 20:33:30

開一個變數layer,紀錄當下所在「層數」,初始層數layer = 0。

遞迴函式為 foo(int layer);

另外開一個尋訪字串的全域變數index。

 

每次進入遞迴先將index+1

 

讀取字串,讀到"2"時,

return foo(layer+1)+foo(layer+1)+foo(layer+1)+foo(layer+1)

 

當讀到"1"時,直接return當下進行遞迴"1"的面積。

 

面積計算方式:pow(n/pow(2,layer),2)

不是1也不是2就 return 0。

 

主程式中只需讀字串和n,及呼叫遞迴即可。

#37956: Re: C++遞迴解


cliffchiang (Cliff)

學校 : 不指定學校
編號 : 195470
來源 : [1.169.136.177]
最後登入時間 :
2025-09-29 17:53:21

開一個變數layer,紀錄當下所在「層數」,初始層數layer = 0。

遞迴函式為 foo(int layer);

另外開一個尋訪字串的全域變數index。

 

每次進入遞迴先將index+1

 

讀取字串,讀到"2"時,

return foo(layer+1)+foo(layer+1)+foo(layer+1)+foo(layer+1)

 

當讀到"1"時,直接return當下進行遞迴"1"的面積。

 

面積計算方式:pow(n/pow(2,layer),2)

不是1也不是2就 return 0。

 

主程式中只需讀字串和n,及呼叫遞迴即可。

index應為-1起算的吧?