在R中输入以计算数字的阶乘

时间:2017-03-18 17:21:11

标签: r input factorial

我正在尝试编写一个程序,要求用户输入一个整数并计算整数的阶乘,如果用户给出一个负数,程序将结束。我得到了

  

while(x> = 0){:缺少值TRUE / FALSE

时出错

需要,有时候这个

  

x + 1中的错误:二元运算符的非数字参数

我的代码:

x <-readline(prompt="Enter an integer: ")
x <- as.integer(x)
while(x >= 0)
{
  y <- factorial(x)
  y
  x <-readline(prompt="Enter an integer: ")
  x <- as.integer(x)
}

1 个答案:

答案 0 :(得分:1)

如果将所有内容都放在函数中,您的代码将会起作用。我改进了代码并创建了一个函数myfun

myfun <- function()
{
  z <- TRUE
  while( z )
  {
    x <- readline( prompt="Enter an integer: " )
    if ( x  < 1 ) {
      z <- FALSE
    } else {
      y <- factorial( as.numeric( x ) )
      print( y )
    }
  }
}

myfun()
# Enter an integer: 1
# [1] 1
# Enter an integer: 5
# [1] 120
# Enter an integer: -1
# >