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