這篇文章主要講我們介紹如何利用C語言去解決一個簡單的數學問題,1+2+...+100=?
C語言教程例項:1到100求和首先我們將問題簡化一下,只求1+2=?相信每位同學都能很快的寫出c語言的程式。按照以前的思路,我們先寫程式模板,然後在指定的地方編寫程式碼即可。
#include
int main(){
int a1 = 1;
int a2 = 2;
int sum =a1 + a2;
return 0;
}
是不是很快就寫出了程式程式碼,既然1+2我們能求,那麼1+2+...+100是不是也是同樣的道理。
#include
int main(){
int a1 = 1;
int a2 = 2;
...
int a100 =100;
int sum =a1 + a2+...+a100;
return 0;
}
(上面的'程式碼並不是完整的程式碼,其中的省略號部分需要大家自己補全。)
這就是我們解決1到100求和的第一種解法。是不是很有成就感!!!
上面的程式碼雖然能夠解決問題,但是大家在編寫程式碼的時候,是不是感覺有點惱火。
我們來分析一下以上程式碼的問題,最主要的問題在於我們需要定義101個整型變數,其中100個a1, a2,..., a100還有一個sum。那麼是否可以減少變數定義的個數呢?
我們需要變數來儲存1,2,...,100但是又不想使用a1,a2, ..., a100這種方式。那麼是否可以只使用1個變數就可以呢?即只定義一個變數i,就可以實現儲存1,2,...,100。
在經過一番分析之後,我們發現可以利用C語言的迴圈結構來實現。
int i = 0;
for( i = 1; i <= 100; i++)
上面的程式碼是不是就可以實現只使用一個變數i就能儲存1,2,...,100。
以前我們需要100個變數來儲存1,2,...,100現在我們只需要1個變數就可以了,是不是進步了很多。
那麼接下來便是如何實現求和呢?
我們可以定義一個變數sum來儲存當前最新的求和結果,然後去加i,並將求和的結果更新到sum,那麼sum本質就是一個累加器。(如想了解更多,請關注《C語言教程累加器》)
int i = 0;
int sum = 0;
for(i = 1; i <= 100; i++){
sum = sum +i;
}
以上程式碼是不是很簡潔了,那麼這是不是最好的答案呢?還可以改進嗎?
其實我們還可以有更好的方式,那就是直接使用數學公式就可以求解。
int sum = (1+100)*100 / 2;
直接一行程式碼就可以得到答案,這就是數學的魅力哈!所以小夥伴們,要不要好好學習數學!!!
總結
從上面的分析我們知道,在解決一個問題的時候,我們首先想到的大多是一些比較簡單的解法,但是隨著對問題分析的不斷深入,我們可以不斷的改進解法,最終會找到適合你自己的解決問題的方法。