1+2+3+4......+100000=?我为什么会错误

xcode2003 2004-09-12 02:37:01
int x = 0;
for(int i=1;i<100001;i++)
x = x+i;

printf("%d",x);
...全文
320 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
an_bachelor 2004-09-14
  • 打赏
  • 举报
回复
但是int的位数在不同编译器里也是不同的TC20是16bit但VC是32bit 并不是.NET才是32bit
daiwb 2004-09-13
  • 打赏
  • 举报
回复
#ifndef WIN32
typedef long long i64;
#else
typedef __int64 i64;
#endif

void input(i64 &a)
{
cin >> temp;
a = 0;
for(int i = 0; temp[i] != '\0'; ++i)
a = a * 10 + (int)(temp[i] - '0');
}
void print(i64 a)
{
if(a > 9)
print(a/10);
cout << (int)(a%10);
}
lyf_sky 2004-09-13
  • 打赏
  • 举报
回复
同意
hyl6688 2004-09-13
  • 打赏
  • 举报
回复
C语言里的int是int16了 long才是 int32 不像.net里int 是int32 long是int64
maltt521 2004-09-12
  • 打赏
  • 举报
回复
应该是数字的长度超过了整型的范围,我记得整型最大是32768吧,你可以去看一下C语言的资料,那个上边对各种数据类型讲的特别清楚,我觉得你可以定义为长整型或者双精度类型的,所以也不应该用%d来输出。
Squall1009 2004-09-12
  • 打赏
  • 举报
回复
同意verybigbug的观点。
n*(n+1)/2可读性很高啊.
CharmDream 2004-09-12
  • 打赏
  • 举报
回复
如果是大数运算问题
找一个或做一个大数类来计算
CharmDream 2004-09-12
  • 打赏
  • 举报
回复
大数运算问题
找一个或做一个大数类来计算
  • 打赏
  • 举报
回复
昏!
yinzhaohui(一切努力)是对的!
#include <iostream>
using namespace std;

void main(void)
{
__int64 x = 100000I64;
x = x*(x+1)/2;
printf("x = %I64d\n",x);

__int64 y = 0;
for(__int64 i = 1; i<=100000; i++ )
{
y += i;
}
printf("y = %I64d\n",y);
}
结果:x=5000050000
y=5000050000
  • 打赏
  • 举报
回复
刚才用int、long int、long double、__int64都算了一下,

全是错误的!

手算了一下,应该是100000×(100001)/2=5000050000

  • 打赏
  • 举报
回复
哦,sorry!
结果是错的
fxj51983 2004-09-12
  • 打赏
  • 举报
回复
各个环境下的int的所占用的字节是不一样的!有的是2个字节有的是4字节!
建议使用DWORD或者long
  • 打赏
  • 举报
回复
我在windowsXP,VC6下,运行下面的程序,没有出现错误啊!楼主,你怎么搞的?
运行结果是:704982704

#include <iostream>
using namespace std;

void main(void)
{
int x = 0;
for(int i=1;i<100000;i++)
{
x += i;
}
cout << x << endl;
}
yinzhaohui 2004-09-12
  • 打赏
  • 举报
回复
可能是为了学习需要
使用__int64
__int64 x = 0;
for(__int64 i=1;i<100001I64;i++)
x = x+i;

printf("%I64d",x);
broadoceans 2004-09-12
  • 打赏
  • 举报
回复
一般来说int 是32位,不是16位
可能是超出范围了,建议你用
_int64即64位整数。

各位楼上的,至于有没有效率也没有问你,回答有何意义?
mxh0506 2004-09-12
  • 打赏
  • 举报
回复
可读性可以靠详细的注释和良好的代码书写风格来保证,而绝不是牺牲代码的效率
CPU是为用户服务的,而不是为程序员——这句话听过吧?
mxh0506 2004-09-12
  • 打赏
  • 举报
回复
记得这是某个公司的面试题,如果照你这么写,就S菜了
James_ht 2004-09-12
  • 打赏
  • 举报
回复
to lyrzhlgq(笑天,笑地)
如果n是1万以上,是否要循环1万以上次。
n*(n+1)/2这个公式在数学中也有讲呀。计算机是和数学结合很紧密的学科。

oyljerry 2004-09-12
  • 打赏
  • 举报
回复
结果超出范围了,换数据类型吧
prettywolf 2004-09-12
  • 打赏
  • 举报
回复
如豆豆所说,
早就溢出了.
long未必可以,
用double long吧.
加载更多回复(6)
内容概要:本文介绍了DeepSeek在职场中的应用,从提示语技巧到多场景应用,涵盖了DeepSeek的基础模型(V3)、深度思考模型(R1)及其联网搜索功能。文中详细描述了DeepSeek的模型对比,包括操作规范、结果导向、路径灵活性、响应模式和风险特征等方面。此外,还探讨了DeepSeek在制作可视化图表、PPT、海报、视频以及批量生成新媒体文案等具体应用场景中的使用方法和技巧。最后,文章展示了DeepSeek在市场调查、AI应用开发等方面的应用实例,强调了其在人机协同和共生领域的潜力。 适用人群:适用于希望提升工作效率和创新能力的职场人士,特别是从事数据分析、内容创作、市场营销、AI开发等领域的专业人士。 使用场景及目标:①通过DeepSeek的基础模型(V3)和深度思考模型(R1)进行高效的任务处理和复杂推理;②利用DeepSeek制作可视化图表、PPT、海报和视频,提高内容创作的质量和效率;③通过DeepSeek进行市场调查和AI应用开发,优化业务流程并推动创新。 其他说明:DeepSeek不仅提供了强大的AI工具,还强调了人机协同的重要性。用户在使用过程中应注意操作规范,结合实际需求选择合适的模型,并充分利用DeepSeek的各项功能来实现高效的职场应用。文中还提到了多个国际竞赛中的获奖情况,展示了DeepSeek团队在AI领域的卓越实力。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧