原文: https://www.programiz.com/kotlin-programming/examples/gcd-hcf-recursion

在此程序中,您将学习使用 Kotlin 中的递归函数查找 GCD(最大公约数)或 HCF。

该程序采用两个正整数,并使用递归计算 GCD 。

访问此页面以了解如何使用循环来计算 GCD

示例:使用递归的两个数字的 GCD

  1. fun main(args: Array<String>) {
  2. val n1 = 366
  3. val n2 = 60
  4. val hcf = hcf(n1, n2)
  5. println("GCD of $n1 and $n2 is $hcf.")
  6. }
  7. fun hcf(n1: Int, n2: Int): Int {
  8. if (n2 != 0)
  9. return hcf(n2, n1 % n2)
  10. else
  11. return n1
  12. }

运行该程序时,输出为:

  1. 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 程序