Kotlin 递归求数字阶乘程序

正数 n 的阶乘由下式给出:

factorial of n (n!) = 1 * 2 * 3 * 4 * ... * n

负数的阶乘不存在。0 的阶乘是 1。

在此示例中,您将学习如何使用递归求数字的阶乘。访问此页面了解如何使用循环求 数字的阶乘

示例:使用递归计算数字的阶乘

fun main(args: Array<String>) {
    val num = 6
    val factorial = multiplyNumbers(num)
    println("Factorial of $num = $factorial")
}

fun multiplyNumbers(num: Int): Long {
    if (num >= 1)
        return num * multiplyNumbers(num - 1)
    else
        return 1
}

运行程序后,输出将是

Factorial of 6 = 720

最初,`multiplyNumbers()` 函数从 `main()` 函数调用,并将 6 作为参数传递。

由于 6 大于或等于 1,因此将 6 乘以 `multiplyNumbers()` 的结果,并将 5 (num -1) 作为参数传递。由于它是从同一函数调用的,因此这是一个递归调用。

在每次递归调用中,参数 `num` 的值都会减 1,直到 `num` 小于 1。

当 `num` 的值小于 1 时,不再进行递归调用。

每次递归调用都会返回,让我们得到

6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720

这里是等效的 Java 代码:Java 递归求阶乘程序

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战