跳到主要内容

Kotlin 程序使用递归计算数字的阶乘

正整数n的阶乘可以表示为:

n的阶乘 (n!) = 1 * 2 * 3 * 4 * ... * n

负数没有阶乘的概念,而0的阶乘是1。

在这个示例中,您将学习如何使用递归来查找一个数字的阶乘。如果要学习如何使用循环来查找数字的阶乘,请访问此页面:使用循环查找数字的阶乘

示例:使用递归查找数字的阶乘

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

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

当您运行该程序时,输出如下:

6 的阶乘 = 720

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

由于6大于或等于1,6乘以multiplyNumbers()的结果,其中传递了5(num - 1)。由于它是从同一个函数调用的,它是一个递归调用。

在每个递归调用中,参数num的值递减1,直到num小于1为止。

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

每个递归调用都返回一个值,最终得到:

6 * 5 * 4 * 3 * 2 * 1 * 10时为1= 720

以下是等效的Java代码:使用递归查找阶乘的Java程序