0
我學習遞歸函數的斯威夫特,我做了以下內容:遞歸函數
func recursive(i: Int) -> Int {
if i == 1 {
return 1
} else if i >= 2 {
return recursive(i: i - 1) + 1
}
return 0
}
我無法弄清楚,爲什麼上面的功能無法正常工作。我已經通過執行下面的測試print(recursive(10))
,它給了我一個輸出10.我預計輸出爲1.任何人都可以幫助我嗎?先謝謝你。
我在XCode 8.3上使用Playgrounds。
'遞歸(10)== 10'是正確的。你爲什麼期望別的東西? –
是的,它應該是1,但輸出顯示爲10. –
嗯,是的,因爲你在每次遞歸調用時加1,並且做了9次遞歸調用 - 所以1 + 9 = 10 – Hamish