HDOJ 1001

来源:互联网 发布:discuz 数据字典 编辑:程序博客网 时间:2024/04/29 21:39
#include <stdio.h>int main(){    unsigned int i;    while(scanf("%u",&i)!= EOF)        printf("%u\n\n",i*(i+1)/2);    return 0;}


注意点:

int是4字节,32位的,
若直接输出i*(i+1)/2 运算时,如果i已经足够大了,那么i*(i+1)就会超出32位的范围,导致溢出,因而会导致结果错误,所以需要设置为unsigned int。
若定义了一个int sum ;使得sum += i;这样处理的话,是慢慢累加的,不会溢出,所以最后输出的结果正确。