原文: https://www.programiz.com/kotlin-programming/examples/gcd-hcf-recursion
在此程序中,您将学习使用 Kotlin 中的递归函数查找 GCD(最大公约数)或 HCF。
该程序采用两个正整数,并使用递归计算 GCD 。
访问此页面以了解如何使用循环来计算 GCD。
示例:使用递归的两个数字的 GCD
fun main(args: Array<String>) {
val n1 = 366
val n2 = 60
val hcf = hcf(n1, n2)
println("GCD of $n1 and $n2 is $hcf.")
}
fun hcf(n1: Int, n2: Int): Int {
if (n2 != 0)
return hcf(n2, n1 % n2)
else
return n1
}
运行该程序时,输出为:
GCD of 366 and 60 is 6.
在上面的程序中,递归函数被调用直到n2
为 0。最后,n1
的值是给定两个数字的 GCD 或 HCF。
执行步骤
序号 | 递归调用 | n1 |
n2 |
n1 % n2 |
---|---|---|---|---|
1 | hcf(366, 60) |
366 | 60 | 6 |
2 | hcf(60, 6) |
60 | 6 | 0 |
最后 | hcf(6, 0) |
6 | 0 | - |
这是等效的 Java 代码:使用递归查找 GCD 的 Java 程序。