main()
{
int i,sn;
sn=0;
for(i=1;i<=99;)
{
sn+=i*(i+1)*(i+2);
i+=2;
}
printf("sn=%d",sn);
}
得到26322
后来我定义 sn 为 unsigned long 22930
正确答案好像是13002450
帮我看下要怎么改 谢谢
1*2*3+3*4*5+...+99*100*101
答案:5 mip版
解决时间 2021-01-17 12:06
- 提问者网友:妳熄滅叻菸,説啓従偂
- 2021-01-16 18:39
最佳答案
- 二级知识专家网友:不了解我就别说我变了
- 2021-01-16 19:11
#include
void main()
{
int i,sn;
sn=0;
for(i=1;i<=99;i++,i++)
{
sn+=i*(i+1)*(i+2);
}
printf("sn=%d",sn);
}
void main()
{
int i,sn;
sn=0;
for(i=1;i<=99;i++,i++)
{
sn+=i*(i+1)*(i+2);
}
printf("sn=%d",sn);
}
全部回答
- 1楼网友:指间的落寞
- 2021-01-16 22:46
这个涉及到大整数的处理,需要特殊编程的。这个结果会是个天文数字。如果实在要做,可以尝试使用浮点数。
- 2楼网友:孤寡少年
- 2021-01-16 21:22
解决方法:
1. 使用大整数,实质上是用字符来描述数字,这个大整数自己去实现
2. 分段操作和计算,超过int(double)等上线时转换为字符
- 3楼网友:清欢话寂寥
- 2021-01-16 21:00
求:1*2 2*3 3*4 ...... 99*100之和 1*2 2*3 3*4 4*5 5*6 6*7 7*8 …… 98*99 99*100 =1*2 (2*3 3*4) (4*5 5*6) (6*7 7*8) …… (98*99 99*100) =2*1² 2*3² 2*5² 2*7² 2*9² …… 2*99² =2*(1^2 3^2 5^2…… 99^2) 而1² 3² 5² ..........(2n-1)²=n(4n^2-1)/3 这里 n=50 1-100所有奇数的平方和=50*(4*50^2-1)/3=166650 所以1*2 2*3 3*4 4*5 5*6 6*7 7*8 …… 98*99 99*100 =166650*2=333300
- 4楼网友:小河边唱歌
- 2021-01-16 19:38
你的算法没有问题
但是 printf("sn=%d",sn); 貌似有问题
我在Java 中是这样写的
int i,sn;
sn=0;
for(i=1;i<=99;){
sn=i*(i+1)*(i+2);
i=i+2;
}
System.out.println(sn);//在控制台输出sn
最终sn 应该是 999900
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯