预期返回“Int”的函数中缺少返回值 - 最大公约数

问题描述

这是我的代码

    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))