跳到主要内容

R 程序:使用递归查找数字的阶乘

在这个示例中,您将学习使用递归函数计算数字的阶乘。

要理解这个示例,您应该掌握以下R编程的主题:

一个数字的阶乘是从1到该数字的所有整数的乘积。

例如,数字6的阶乘(表示为6!)如下所示:

1 * 2 * 3 * 4 * 5 * 6 = 720

阶乘不适用于负数,而零的阶乘为1,0! = 1。

在这个示例中,使用递归函数来计算一个数字的阶乘。然而,您也可以在不使用递归函数的情况下计算它。

了解更多关于如何在没有递归的情况下计算数字的阶乘的信息。

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

recur_factorial <- function(n) {
if (n <= 1) {
return(1)
} else {
return(n * recur_factorial(n - 1))
}
}

输出

> recur_factorial(5)
[1] 120

在这里,我们要求用户输入一个数字,并使用递归函数recur_factorial()来计算到该数字的乘积。

假设用户将数字5传递给函数。

recur_factorial()内部,数字5与(5 - 1 = 4)的阶乘相乘。

4再与(4 - 1 = 3)的阶乘相乘,依此类推,直到数字达到1。

现在,2、3、4和5的所有先前函数逐个返回结果,最终得到最终结果1*2*3*4*5,结果为120。