R 循环阶乘
我创建了以下函数来计算给定数字的阶乘:R 循环阶乘,r,loops,for-loop,factorial,R,Loops,For Loop,Factorial,我创建了以下函数来计算给定数字的阶乘: factorial <- function(x){ y <- 1 for(i in 1:x){ y <-y*((1:x)[i]) print(y) } } factorial(6) in console: [1] 1 [1] 2 [1] 6 [1] 24 [1] 120 [1] 720 factorial是否将print语句移出循环 for(i in 1:x){ y <-y*((1:x)[i]) } print(
factorial <- function(x){
y <- 1
for(i in 1:x){
y <-y*((1:x)[i])
print(y)
}
}
factorial(6)
in console:
[1] 1
[1] 2
[1] 6
[1] 24
[1] 120
[1] 720
factorial是否将print语句移出循环
for(i in 1:x){
y <-y*((1:x)[i])
}
print(y)
for(1:x中的i){
y是否将打印语句移到循环之外
for(i in 1:x){
y <-y*((1:x)[i])
}
print(y)
for(1:x中的i){
y只需将print()
放在循环外即可
factorial <- function(x){
y <- 1
for(i in 1:x){
y <-y*((1:x)[i])
}
print(y)
}
factorial只需将print()
factorial <- function(x){
y <- 1
for(i in 1:x){
y <-y*((1:x)[i])
}
print(y)
}
factorialprint
打印到屏幕上。函数将返回上次计算表达式的结果(或显式的返回值
值)。是否既要返回值,也要打印值
话虽如此
R
已经有了一个函数factorial
,它调用gamma(x+1)
,使用的事实是
所以
您编写的函数在与大数相乘时会出现整数溢出问题,并且由于在循环中反复重新分配到y
(不需要时递归)print
打印到屏幕上,因此效率极低。函数将返回上一次计算表达式的结果(或显式返回值)。是否既要返回值,也要打印值
话虽如此
R
已经有了一个函数factorial
,它调用gamma(x+1)
,使用的事实是
所以
您编写的函数在与大数相乘时会出现整数溢出问题,并且由于您在循环中反复重新分配到y
(在不需要时递归)#从用户处获取输入,因此效率极低
n#从用户处获取输入
n您可以在代码末尾使用返回函数来定义阶乘函数:
factorial<-function(x){
y<-1
for(i in 1:x) {
y<-y*((1:x)[i])
}
return(y)
}
factorial您可以通过在代码末尾使用返回函数来定义阶乘函数:
factorial<-function(x){
y<-1
for(i in 1:x) {
y<-y*((1:x)[i])
}
return(y)
}
factorial为什么你不只是做factorial(1:6)
?或者只做factorial(6)
为什么你不只是做factorial(1:6)
?或者只做factorial(6)
对我们来说是最好的事情。:)请注意,当使用R时,这是一种可怕的计算阶乘的方法。事实就是这样。标准库函数总是更好。您确实意识到,如果您只是调用阶乘(6),则不必使用print(y)
,因为这将自动打印结果。我们中最好的人也会这样做。:)注意,使用R时,这是一种可怕的计算阶乘的方法。确实如此。标准库函数总是更好。您确实意识到,如果您只是调用阶乘(6),则不必使用print(y)
,因为这将自动打印结果。这似乎是一种更简单的方法,如果你能将它嵌入到函数中,它将以相同的语言完美地工作。这似乎是一种更简单的方法,如果你能将它嵌入到函数中,它将以相同的语言完美地工作。是不是?