【发布时间】:2021-03-11 09:42:10
【问题描述】:
我被提示了一个问题,并且非常接近解决我需要的问题。问题如下-
“编写一个 while 循环,计算并存储任何非负整数 mynum 的阶乘,方法是在每次重复大括号代码时将 mynum 减 1。”
另一个因素是,如果输入 0 或 1,则输出将为 1。
我写的代码如下-
factorialcalc <- function(i){
factorial <- 1
if(i==0 | i==1){
factorial <- 1
} else{
while(i >= 1){
factorial <- factorial * i
i <- i-1
}
}
return (factorial)
}
有输入-
mynum <- 5
factorialcalc(mynum)
和输出-
[1] 120
您可能想知道,“您的代码运行良好,那么问题出在哪里?” 我的问题在于问题的“计算和存储”部分。
如何修改我的代码以将 factorialcalc 的答案放入向量中?
示例- 我输入
mynum <- 5
factorialcalc(mynum)
和
mynum <- 3
factorialcalc(mynum)
和
mynum <- 4
factorialcalc(mynum)
当我调用这个新向量时,我希望看到一个包含所有三个输出的向量 (就像我制作了一个向量 c(120,6,24))
我在想有一种方法可以在我的函数或 while 循环中的某处添加这个向量,但我不确定在哪里。另外,请注意答案必须包含我的代码中的循环。
【问题讨论】:
-
如果您将参数作为向量传递,输出将自动成为向量。
mynum <- c(5, 4, 3)然后factorialcalc(mynum)
标签: r function vector while-loop factorial