有关数据溢出的总结

来源:互联网 发布:windows不能识别usb 编辑:程序博客网 时间:2024/05/17 06:43

杭电1001 错误解法:

#include <stdio.h>int main(){    int n;    while(scanf("%d",&n)!=EOF){        printf("%d\n\n",(n+1)*n/2);    }    return 0;}

杭电1001 正确解法:

#include <stdio.h>int main(){int n;while(scanf("%d",&n)!=EOF){if(n%2==0){printf("%d\n\n",(n/2)*(n+1));}else{printf("%d\n\n",((n+1)/2)*n);}}return 0;}
这段代码开始提交时自己一直的wa,自己没有弄清楚,最后发现是数据溢出了,这种问题在上次省赛的时候已经遇到(2017安徽程序设计竞赛A题),当初队友发现了问题自己都没有去重视,觉得自己不会再犯,结果才3个星期又犯了。写下来来警告自己。