跳到主要内容

R语言程序:寻找一个数字的阶乘

在这个示例中,你将学习如何计算一个数字的阶乘,而不使用递归函数。

要理解这个示例,你需要了解以下R编程主题:

一个数字的阶乘是从1到该数字的所有整数的乘积。例如,6的阶乘(表示为6!)等于12345*6 = 720。

阶乘在负数上是没有定义的,而0的阶乘为1,即0! = 1。

这个示例通过常规方法找到一个数字的阶乘。但是,你也可以使用递归来找到它。

了解如何使用递归来计算一个数字的阶乘

示例:计算一个数字的阶乘

# 从用户处获取输入
num = as.integer(readline(prompt="请输入一个数字: "))
阶乘 = 1
# 检查数字是负数、正数还是零
if(num < 0) {
print("抱歉,负数没有阶乘")
} else if(num == 0) {
print("0的阶乘是1")
} else {
for(i in 1:num) {
阶乘 = 阶乘 * i
}
print(paste(num ,"的阶乘是",阶乘))
}

输出

请输入一个数字: 8
[1] "8的阶乘是40320"

在这里,我们从用户处获取输入,并使用if...else语句检查数字是负数、零还是正数。

如果数字是正数,我们使用for循环来计算阶乘。

我们也可以使用内置函数factorial()来实现这一点。

> factorial(8)
[1] 40320