在此程序中,您将学习使用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("$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 * 1 (for 0) = 720
以下是等效的Java代码:使用递归查找阶乘的Java程序