我正在尝试编写一个R程序来计算几何级数的总和而不使用标准公式,如下所示:
h <- function(x,n){
sum.value <- 1
i <- 1
while ( i <= n){
sum.value = sum.value + x^i
}
return(sum.value)
}
当我运行此代码时,它进入无限循环。使用for循环运行它时没有遇到麻烦。真的很奇怪,同样的问题不适用于while循环,因为while循环比for循环更基本。我错过了什么吗?感谢。
答案 0 :(得分:3)
您忘了增加i
。另外我不明白为什么sum.value
以1开头。
h <- function(x,n){
sum.value <- 0
i <- 1
while ( i <= n){
sum.value = sum.value + x^i
i <- i+1
}
return(sum.value)
}
h(3,5)
#[1] 363
当然,使用矢量化会更有效,更简单:
sum(3^(1:5))
#[1] 363
答案 1 :(得分:1)
R中的for循环自动递增。一个while循环没有。如果你想让它工作,你需要在while循环中为i添加一个增量。