记得学习C语言的时候,老师教for循环语句举例时就是级数求和(大概很多C教程都喜欢用这个例子的吧)。
而且考试时试卷上经常都会有这道题目,于是很多同学几乎是把整个程序段背下来,现在回想一下还真觉得有点搞笑的味道:)
说起来也不能怪俺们的老师和同学啊,俺们国家的教育就是这样,没办法啊,谁叫俺们都是中国人呢,呵呵(没有崇洋的味道啊,只是对俺们国家的教育颇有微词啦)。

那时侯我们的标准程序段是这样的:
∑N = 1 + 2 ... N
int main()
{
 int i, sum = 0;
 for(i = 1;i < N;i ++)sum += i;
 printf("1-N的级数和是: %i",sum);
 return 0;
}
这个标准还是我“制定”的啦,全班2/3的同学都用俺的标准应付老师和试卷,哈哈(成就感?!)。
这个标准是我知道的第一个知道求级数和的方法!

后来,学数据结构的排序方法时,因为书上讲到冒泡、选择还有个什么排序法来着,循环次数正好就是一个级数和,就想知道到底会是多少次循环?
于是发奋图强(发粪涂墙?),可能是我比别人笨,我硬生生研究了一天才得出一个公式:
∑N = (N ^ 2) / 2 + N / 2
可是当我公布我的发现时,遭受了沉重的打击:有人说中学时学过这个公式了(我汗颜,怎么我就不记得中学课本上有这个公式啊?哪位同仁中学时学过这个公式告诉俺一声啊,这事俺如今还耿耿如怀呢?!)。
不过不管怎么样,我总算是知道了第二种方法:
int main()
{
 float sum;
 sum = (N ^ 2) / 2 + N / 2;
 printf("1-N的级数和是: %i",(int)sum);
 return 0;
}

再就是今天和女友无意间说起这个话题,竟然又让我发现了另外一种更简单的方法(天才?笨蛋?):
∑N = N * (N / 2 + 0.5)
呵呵,是不是有点像上一个公式的简化公式啊?!
俺没有去做简化啦,也没有去验证(主要是不记得怎么去简化了啦),哈哈。
终于,第三种方法出炉了:
int main()
{
 float sum;
 sum = N * (N / 2 + 0.5);
 printf("1-N的级数和是: %i",(int)sum);
 return 0;
}

呵呵,也不知道会不会有更简单的方法。
此文纯属无聊之作啦(有人会像偶一样无聊吗?!),哈哈!!!