#26568: C++遞迴解


andrew99154 (YuCheng)


開一個變數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)


開一個變數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起算的吧?