我正在爲即將到來的考試練習一些編程問題。這是我不明白的練習題之一:爲什麼下面的遞歸函數會給出輸出'atm'和'hatm'?
「下面的代碼(在Python中)打印什麼?」
def f(s):
if len(s) <= 1:
return s
return f(f(s[1:])) + s[0] #Note double recursion
print f('mat')
print f('math')
顯然,答案是
atm
hatm
但是,爲什麼?
做_you_覺得它應該打印? – wim
手動穿過它。爲每個遞歸調用縮進。 – clcto
我的錯誤,應該是'帽子'。 –