问题描述
这是我的代码:
import UIKit
func gcd(_ a: Int,_ b: Int) -> (Int) {
if a == b {
return a
} else if a > b {
gcd(a - b,b)
} else {
gcd(a,b - a)
}
}
gcd(9,6)
算法是这样工作的:
9 | 6 |
---|---|
3 | 6 |
3 | 3 |
当我做 print(a)
时它给了我一个正确的答案,但当我做 return
时它没有给我结果。
解决方法
您错过了最后 2 个案例中的 return
func gcd(_ a: Int,_ b: Int) -> Int {
if a == b {
return a
} else if a > b {
return gcd(a - b,b)
} else {
return gcd(a,b - a)
}
}
打电话
print(gcd(9,6))