使用for和while来表达r中的阶乘

问题描述 投票:2回答:1

1+(2+1/2!)+(3+1/3!)......+(20+1/20!)

- 仅用于或用于

    sum=0.0
sub_sum=0.0
i=2
j=20
while(i<=20){
  print(i)
  sub_sum=1.0
  j=1.0
  while(j<=i){
    print("j")
    print(j)
    print("sub_sum")
    print(sub_sum)
    sub_sum=j+sub_sum*(1/j)
    j=j+1
  }
  sub=sum+sub_sum
  i=i+1
}
print(sum)

但是我一次又一次地尝试使用它,但它一直得到错误的价格。

r
1个回答
0
投票

随着n=20

sapply(1:n, function(x) x+1/factorial(x)) %>% sum - 1

要么

sapply(1:n, function(x) x+1/prod(1:x)) %>% sum - 1

随着res = -1

(1)for循环:

tmp = 1
for (i in 1:n) {
  tmp = tmp * i
  res = res + i + 1/tmp
}
res

(2)while循环:

tmp = 1
i = 1
while (i <= n) {
  tmp = tmp * i
  res = res + i + 1/tmp
  i = i + 1
}
res
© www.soinside.com 2019 - 2024. All rights reserved.