用 R 语言程序求一个数的阶乘


2023 年 2 月 4 日, 学习 eTutorial
3769

如何求一个数的阶乘?

数字 N 的阶乘是从 1 到该数字的所有数字的总乘积,换句话说,它将我们选择的数字到 1 的所有整数相乘。阶乘的符号是“!”,使用的公式是 n! = n * (n-1) * (n-2) *... 要清楚地理解这个概念,下面图片中给出了一些例子。

Find the factorial of a number

注意:零的阶乘定义为一,即 0! = 1

如何使用 R 程序实现阶乘计算?

在这个 R 程序中,我们使用了 if...else 条件语句和 for 循环。首先,我们通过在 readLine() 函数中使用“prompt”向用户提供适当的消息,将用户输入的数字接受到变量 number 中。

阶乘只对正整数定义,因此首先检查输入的数字是否为正数,如果不是则显示为负整数。现在检查如果数字为则显示阶乘为1。现在对于正整数,从 i=1 到该数字开始一个 for 循环,并在每次迭代中将每个“i 值”乘以“阶乘”,以获得该数字的最终结果。最后,向用户显示输出。

算法

步骤 1:向用户提示适当的消息,使用 readline() 将用户输入到一个变量中

步骤 2:使用 if...else 语句检查数字是负数、零还是正数

步骤 3:如果数字为正数,我们使用 for 循环计算阶乘,即 factorial = factorial x i,直到 i = 1 到 number

步骤 4:打印结果


如果您有兴趣使用递归学习此 R 程序,请参阅此使用递归的阶乘程序

R 源代码

                                          number = as.integer(readline(prompt="Enter a number: "))
factorial = 1
# check is the number is negative, positive or zero
if(number < 0) {
 print("Sorry, factorial does not exist for negative numbers")
} else if(number == 0) {
 print("The factorial of 0 is 1")
} else {
 for(i in 1:number) {
  factorial = factorial * i
 }
print(paste("The factorial of", number ,"is",factorial))
}
                                      

输出

Enter a number: -5
[1] "Sorry, factorial does not exist for negative numbers"

Enter a number: 0
[1] "The factorial of 0 is 1"

Enter a number: 8
[1] "The factorial of 8 is 40320"