記得學(xué)習(xí)C語言的時(shí)候,老師教for循環(huán)語句舉例時(shí)就是級(jí)數(shù)求和(大概很多C教程都喜歡用這個(gè)例子的吧)。
而且考試時(shí)試卷上經(jīng)常都會(huì)有這道題目,于是很多同學(xué)幾乎是把整個(gè)程序段背下來,現(xiàn)在回想一下還真覺得有點(diǎn)搞笑的味道:)
說起來也不能怪俺們的老師和同學(xué)啊,俺們國家的教育就是這樣,沒辦法啊,誰叫俺們都是中國人呢,呵呵(沒有崇洋的味道啊,只是對(duì)俺們國家的教育頗有微詞啦)。

那時(shí)侯我們的標(biāo)準(zhǔn)程序段是這樣的:
∑N = 1 + 2 ... N
int main()
{
 int i, sum = 0;
 for(i = 1;i < N;i ++)sum += i;
 printf("1-N的級(jí)數(shù)和是: %i",sum);
 return 0;
}
這個(gè)標(biāo)準(zhǔn)還是我“制定”的啦,全班2/3的同學(xué)都用俺的標(biāo)準(zhǔn)應(yīng)付老師和試卷,哈哈(成就感?!)。
這個(gè)標(biāo)準(zhǔn)是我知道的第一個(gè)知道求級(jí)數(shù)和的方法!

后來,學(xué)數(shù)據(jù)結(jié)構(gòu)的排序方法時(shí),因?yàn)闀现v到冒泡、選擇還有個(gè)什么排序法來著,循環(huán)次數(shù)正好就是一個(gè)級(jí)數(shù)和,就想知道到底會(huì)是多少次循環(huán)?
于是發(fā)奮圖強(qiáng)(發(fā)糞涂墻?),可能是我比別人笨,我硬生生研究了一天才得出一個(gè)公式:
∑N = (N ^ 2) / 2 + N / 2
可是當(dāng)我公布我的發(fā)現(xiàn)時(shí),遭受了沉重的打擊:有人說中學(xué)時(shí)學(xué)過這個(gè)公式了(我汗顏,怎么我就不記得中學(xué)課本上有這個(gè)公式啊?哪位同仁中學(xué)時(shí)學(xué)過這個(gè)公式告訴俺一聲啊,這事俺如今還耿耿如懷呢?!)。
不過不管怎么樣,我總算是知道了第二種方法:
int main()
{
 float sum;
 sum = (N ^ 2) / 2 + N / 2;
 printf("1-N的級(jí)數(shù)和是: %i",(int)sum);
 return 0;
}

再就是今天和女友無意間說起這個(gè)話題,竟然又讓我發(fā)現(xiàn)了另外一種更簡(jiǎn)單的方法(天才?笨蛋?):
∑N = N * (N / 2 + 0.5)
呵呵,是不是有點(diǎn)像上一個(gè)公式的簡(jiǎn)化公式啊?!
俺沒有去做簡(jiǎn)化啦,也沒有去驗(yàn)證(主要是不記得怎么去簡(jiǎn)化了啦),哈哈。
終于,第三種方法出爐了:
int main()
{
 float sum;
 sum = N * (N / 2 + 0.5);
 printf("1-N的級(jí)數(shù)和是: %i",(int)sum);
 return 0;
}

呵呵,也不知道會(huì)不會(huì)有更簡(jiǎn)單的方法。
此文純屬無聊之作啦(有人會(huì)像偶一樣無聊嗎?!),哈哈!!!