1404高斯求和

描述

高斯是德国著名数学家、物理学家、天文学家、几何学家,有“数学王子”的美誉。

18岁的高斯发现了质数分布定理和最小二乘法。通过对足够多的测量数据的处理后,可以得到一个新的、概率性质的测量结果。在这些基础之上,高斯随后专注于曲面与曲线的计算,并成功得到高斯钟形曲线(正态分布曲线)。其函数被命名为标准正态分布(或高斯分布),并在概率计算中大量使用。在高斯19岁时,仅用尺规便构造出了17边形。并为流传了2000年的欧氏几何提供了自古希腊时代以来的第一次重要补充。高斯总结了复数的应用,并且严格证明了每一个n阶的代数方程必有n个实数或者复数解。在他的第一本著名的著作《算术研究》中,作出了二次互反律的证明,成为数论继续发展的重要基础。在这部著作的第一章,导出了三角形全等定理的概念。高斯在最小二乘法基础上创立的测量平差理论的帮助下,测算天体的运行轨迹。他用这种方法,测算出了小行星谷神星的运行轨迹。

在数学史上,很少有人象高斯一样很幸运地有一位鼎力支持他成才的母亲。罗捷雅直到34岁才出嫁,生下高斯时已有35岁了。她性格坚强、聪明贤慧、富有幽默感。罗捷雅真诚地希望儿子能干出一番伟大的事业,对高斯的才华极为珍视。然而,她也不敢轻易地让儿子投入当时尚不能养家糊口的数学研究中。在高斯19岁那年,尽管他已做出了许多伟大的数学成就,但她仍向数学界的朋友W.波尔约(W.Bolya,非欧几何创立者之一J.波尔约之父)问道:高斯将来会有出息吗?W.波尔约说她的儿子将是欧洲最伟大的数学家,为此她激动得热泪盈眶。

高斯小时候有一个很出名的故事:用很短的时间计算出了小学老师布特纳布置的任务:对自然数从1到100的求和。他所使用的方法是:对50对构造成和101的数列求和(1+100,2+99,3+98……),同时得到结果:5050。这可以总结为高斯求和公式:和=(首项+末项)*项数/2

不过,这很可能是一个不真实的传说。据对高斯素有研究的著名数学史家贝尔考证,布特纳当时给孩子们出的是一道更难的加法题:81297+81495+81693+…+100899。

今天,请大家编程解决类似的问题:给定一个整数n,求解1到n之间所有的整数之和(包括1和n)。

输入

输入一个整数n(n≤10000,n≠1)

输出

输出1到n之间所有的整数之和(包括1和n),结果保证在int整型范围内。

输入样例 1 

100

输出样例 1

5050


这道题看上去很简单,只需要用到题目中给出的求等差数列的公式就可以顺利结题了。
但其实不然,题目中给出的输入值是n≤10000,n≠1。必须要考虑到负数的问题。
代码:
 1 #include<iostream>
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int main()
 5 {
 6     long long int n,s=0;
 7     cin>>n;
 8     if(n>0)    //n大于0的情况,正数
 9     {
10         for(int i=1;i<=n;i++)
11         {
12             s+=i;
13         }
14     }
15     if(n<0)    //n小于0的情况,负数
16     {
17         for(int i=n;i<=1;i++)
18         {
19             s+=i;
20         }
21     }
22     if(n==0)    //n等于0,输出0
23        s=0;
24     cout<<s;
25     return 0;
26 }
//n大于0的情况,正数
原文地址:https://www.cnblogs.com/cyk20081108/p/13458589.html