1+2+3+...+100=?

int main()
{
   // 我要计算出1+2+3+...+100的值
   int i = 0, n = 100, sum = 0;    
   for (i; i <= n; i++) {
       sum += i;
   }
   printf("%d
", sum);
   
   // 这对于电脑很轻松,只要重复一百次循环就可以了。但是人不行,累啊。
   // 所以要有一个合理的算法。
   // 数学家高斯(九岁时)也遇到了这个问题,他很快算出答案是5050
   // 首尾对应位置上的数字相加都是101,这样的首尾数字对一共有50个,相乘就是5050!
   // 好厉害!
   sum = ((1 + n) * n) / 2;
   printf("%d
", sum);
   
   // 对于n=100的情况,电脑少操作了99步,推导至更为普遍的情况
   // 就是1次与n次的差别!
}
原文地址:https://www.cnblogs.com/zhangbao/p/5821590.html