注册 登录
编程论坛 C++教室

[讨论]师兄们帮助帮助看下我的小问题

孤魂居士 发布于 2007-06-07 13:34, 561 次点击

今天老师说了个简单的题目
我上课的时候也做了 现在上机调试 结果怎么是上亿的数了 没有这么大吧?

是不是哪个地方出现或者忽略了什么...
哥哥门指点指点

题目:求

sum =1*2*3 + 2*3*4 + 3*4*5 + 4*5*6+..........18*19*20

#include "iostream.h"
void main()
{ int sum=1;int sun=0;
for(int i=1;i<=18;i++)
{
for(int j=i;j<=i+2;j++)

sum=sum*j;

sun=sun+sum;
}

cout<<"sum="<<sun<<endl;
}

结果:
sum=442071126
Press any key to continue
哥哥  小问题  

7 回复
#2
孤魂居士2007-06-07 13:35

真的结果是多少呢?
#3
kisscjy2007-06-07 13:42

正确代码:

#include "iostream.h"


void main()
{
int sum=0;


for(int i=1;i<=18;i++)
{
sum=sum+i*(i+1)*(i+2);
}

cout<<"sum="<<sum<<endl;
}

#4
freshman422007-06-07 13:46
以下是引用孤魂居士在2007-6-7 13:34:41的发言:

今天老师说了个简单的题目
我上课的时候也做了 现在上机调试 结果怎么是上亿的数了 没有这么大吧?

是不是哪个地方出现或者忽略了什么...
哥哥门指点指点

题目:求

sum =1*2*3 + 2*3*4 + 3*4*5 + 4*5*6+..........18*19*20

#include "iostream.h"
void main()
{ int sun=0;
for(int i=1;i<=18;i++)
{
int sum=1;
for(int j=i;j<=i+2;j++)

sum=sum*j;

sun=sun+sum;
}

cout<<"sum="<<sun<<endl;
}

结果:
sum=442071126
Press any key to continue
哥哥  小问题  

#5
aipb20072007-06-07 15:10
呵呵,sum定义的位置错了,应该在第一层循环里。
上面这样!
#6
孤魂居士2007-06-07 15:51

哦 谢谢师兄们的指点
知道了
就一个赋初始值位置错了一小点点 就错了
考试的时候老师应该发现不鸟
#7
孤魂居士2007-06-07 15:54


中区程序代码简单
我的两个循环 你就一个循环 我当时怎么没有想到列
#8
SamuelMe2007-06-08 11:36
#include<iostream>
using namespace std;
void main()
{
int sum=0,i=1,j=2,k=3;
for(;i<18;i++)
{
sum+=i*j*k;
j++;
k++;
}
cout<<"sun="<<sum<<endl;
}
运行后的结果为:sum=29070

[此贴子已经被作者于2007-6-8 11:37:10编辑过]

1