我正在尝试编写一个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循环,因为while循环比for循环更基本。我错过了什么吗?谢谢。
发布于 2014-08-16 21:25:29
您忘了增加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发布于 2014-08-16 21:26:21
R中的for循环会自动递增。while循环不会。如果你想让它工作,你需要在你的while循环中增加一个i的增量。
https://stackoverflow.com/questions/25340570
复制相似问题