我想用rep语句获得factorial函数。
我试试!!但失败!!
fact <- function(n){
for (i in 0:n){
while(i<n){
rep{n*fact(n-1) if(i ==n) break}
}
}
谢谢你的回答。 :)
答案 0 :(得分:0)
假设您的意思是replicate
,而不是rep
,这将是一个解决方案:
fact <- function(N){
n <- N
f <- 1
replicate(n, {
f <<- f*n
n <<- n-1
f
})[N]
}
当然只将它用作练习,因为它比factorial
函数中的构建速度慢。
如果您正在进行函数式编程,则可以使用以下基于lambda的解决方案:
N <- 10
factorial_generator <- function(){
fac <- 1
n <- 0
function(){
n <<- n+1
fac <<- fac * n
return(fac)
}
}
my_factorial <- factorial_generator()
replicate(N, my_factorial())[N]