Recca Chao 的 gitHub page

推廣網站開發,包含 Laravel 和 Kotlin 後端撰寫、自動化測試、讀書心得等。Taiwan Kotlin User Group 管理員。

View on GitHub

Kotlin Kata - 列出最大公因數

輸入兩個數字,回傳這兩個數字的最大公因數

fun gcd(a: Int, b: Int): Int

解答

從比較小的數字測試到 2

如果都沒有,則回傳 1

fun gcd(a: Int, b: Int): Int {  
    var bigger = a  
    var smaller = b  
    if (a < b) {  
        bigger = b  
        smaller = a  
    }  
    for (i in smaller downTo 2) {  
        if (bigger % i == 0) {  
            return i  
        }  
    }  
    return 1  
}

利用 kotlin.math 這段程式碼可以再簡化一點

fun gcd(a: Int, b: Int): Int {  
    for (i in kotlin.math.min(a, b) downTo 2) {  
        if (kotlin.math.max(a, b) % i == 0) {  
            return i  
        }  
    }  
    return 1  
}

另外我們也可以用輾轉相除法來處理


回到 Kotlin Kata 列表