关于编程计算1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…2004)

DimIasInteger,JasInteger,SumasDouble,TotalasDoubleForI=1to2004ForJ=1toISum=Sum+JNextJ... Dim I as Integer, J as Integer, Sum as Double, Total as Double
For I = 1 to 2004
For J = 1 to I
Sum =Sum +J
Next J
Total=Total + Sum
Next I
print Total
我知道是上面这个程序,但是我的疑问是过程能不能有高人帮我分析下,另外我疑惑的是,我把2004改成5来验证这个程序正确否,得到的答案是70,我自己用笔算是35呢,为什么呢?
展开
hansandyou
2011-11-16 · TA获得超过647个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:163万
展开全部
1、i和j都是临时变量
2、sum表示的是每一个括弧内的数字相加之和即(1+2)...(1+2+3...2004)
3、total表示的是全部的和,即每一个sum的和

首先外循环:主要用于从1开始,计算最后的total
For I = 1 to 2004
××××××
Total=Total + Sum //每次本上次的结果加上新的sum(也就是括弧里边的数字之和)
Next I
内循环:主要用于括弧里边的数字相加,但是2004个括弧,每个括弧里的数字是不同的,每个括弧里的数字的和与他所在的位置有关,第1个数是从 1到1的相加,第2个数是从2 到2 的相加,第2004个数是1到2004的相加,从而推断出,第n个数是从1到n的相加,所以内循环写成如下形式:
For J = 1 to I
Sum =Sum +J
Next J

关于你的验证,你算的是正确的,这个程序有BUG,注意应当在每个外循环将sum加入total后,还应当将sum清零,否则sum本身也会一直在累加:
即:
Total=Total + Sum
Sum=0
如果没有加上这条,结果就会错误。
towardsworthy
2011-11-16 · TA获得超过5万个赞
知道大有可为答主
回答量:7121
采纳率:66%
帮助的人:3651万
展开全部
For I = 1 to 2004
Sum=0
For J = 1 to I
Sum =Sum +J
Next J
Total=Total + Sum
Next I
print Total
你应该在每次里面的一个循环之前,都要SUM初始化为0 这样才是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lazycatnet
2011-11-16 · TA获得超过2850个赞
知道小有建树答主
回答量:1390
采纳率:0%
帮助的人:873万
展开全部
你算的没错,程序写错了。少了一句,应该是这样的:
Dim I As Integer, J As Integer, Sum As Double, Total As Double
For I = 1 To 5
For J = 1 To I
Sum = Sum + J
Next J
Total = Total + Sum
Sum = 0
Next I
Print Total

他忘记把sum清零了。。。。至于分析。。这个过程已经简单的不能再简单了,不知道怎么分析。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fiveface
2011-11-16 · TA获得超过1033个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:425万
展开全部
内层循环结束后,除了累加以外,还应该把sum清0,然后在进行下一次循环。
在Total=Total + Sum 语句后面添加一个语句
sum=0
加在 next i 前面,这样就等于35了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火——火
2011-11-16 · TA获得超过1701个赞
知道小有建树答主
回答量:944
采纳率:100%
帮助的人:921万
展开全部
好奇怪 答案是35
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可爱且深远灬毛豆N
2011-11-16 · 超过34用户采纳过TA的回答
知道答主
回答量:134
采纳率:0%
帮助的人:68万
展开全部
因为你每次J循环,sum没有清零,在下一次I循环中SUM是有参数的,当然不是35了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式