使用for循环获得累计和

问题描述:

我需要求和(10^2 + 10^3)99个累计时间,所以总和(1100 + 1100 + 1100 ...(99次))=总。我知道大多数人不喜欢循环,但我需要使用for循环来解决这个问题。以下是我迄今为止...使用for循环获得累计和

prob1 <- function(n){ 
total <- 1100 
for(i in 2:99) 
total[i] <- sum(i^2 + i^3) 
return(total) 
} 

这是我得到

[1] 1100  12  36  80 150 252 392 576 810 1100 1452 1872 2366 2940 3600 
[16] 4352 5202 6156 7220 8400 9702 11132 12696 14400 16250 18252 20412 22736 25230 27900 
[31] 30752 33792 37026 40460 44100 47952 52022 56316 60840 65600 70602 75852 81356 87120 93150 
[46] 99452 106032 112896 120050 127500 135252 143312 151686 160380 169400 178752 188442 198476 208860 219600 
[61] 230702 242172 254016 266240 278850 291852 305252 319056 333270 347900 362952 378432 394346 410700 427500 
[76] 444752 462462 480636 499280 518400 538002 558092 578676 599760 621350 643452 666072 689216 712890 737100 
[91] 761852 787152 813006 839420 866400 893952 922082 950796 980100 

我怎样才能得到它正确地添加和只返回总数是多少? 总数应该是108,900(我相信)

+0

** A **你得到你的代码是要求。期望的结果是什么?您没有使用以前的术语来获得累计总和,并且描述听起来像是每次都使用相同的数字。 ** b。**为什么需要for循环? 'cumsum'和'Reduce'是很好的功能。 ** c。**如果您使用'for'循环,请预先分配适当大小的矢量,否则您将受到恶劣的性能损失。 – alistaire

我看着你的循环问题有点不同,因为你只是想要总数。你的代码将元素添加到总数为[i]的向量中。你反而想让我成为向另一个号码添加号码的迭代器。我用第一行初始化为0。

total=0 
for (i in 1:99) { 
total<-total+(10^2 + 10^3) 
} 
total 

[1] 108900

1100*99 

[1] 108900

+1

谢谢!这工作......它没有最后一行代码“i = i + 1”为我的理解,你可以解释为什么我应该包括这个? –

+0

你是对的。这不是必需的。循环做到了。对困惑感到抱歉。我将编辑我的帖子。 – akaDrHouse

+1

不用担心,我只是想明白。谢谢你的时间,我感谢你的帮助! –