資訊內容
用Scratch巧解數學題——求累加和
用Scratch巧解數學題
——求累加和
問題:計算1+2+...+100 =?
據說,數學王子——高斯10歲時,數學老師為了懲罰一幫不聽話的孩子,出了一道算術難題,就是上面這道題目。原以為會讓大家忙乎一陣子,可是不一會兒高斯就向老師報告他算出來了。高斯的算法是這樣的:
(1+100)+...+(50+51)=101×50=5050
現在,為了更好理解,有人提出:
1 | 2 | 3 | ... | 99 |
100 |
+ | + | + | ... | + | + |
100 | 99 | 98 | ... | 2 | 1 |
101 | 101 | 101 | ... | 101 | 101 |
2×(1+2+...+100) =101×100=100100
1+2+...+100 =100100÷2=5050
這些當然都是很好的算法。但是從1開始一個數一個數硬算也是一種方法呀。雖然這種方法對于人工計算來說可能稍顯復雜一點,但這種重復的計算對于計算機來說,壓根兒就不是個事!我們今天就通過編程硬算。
通常在編寫代碼前,會把算法用流程圖表示出來,就像蓋房子先要有施工圖一樣。所謂編程,就是按照流程圖,按部就班編寫代碼!有了具體的算法,很容易畫出程序流程圖。“硬算”的流程圖如下:
有了流程圖,編寫代碼就很簡單了。流程圖就是編程的施工圖。學習編程,畫流程圖是基本功。一定要養成無流程圖不寫代碼的好習慣!流程圖本身就是編程思路的體現,通過畫流程圖也可以進一步整理我們的思路。
程序寫好后,還要調試,看看功能是否正常。運行程序,按照提示輸入100,結果很快出來了,“1+2+...+100=5050”。秒殺!
計算機是不是很強大呀!但前提是你要會編程呀!只有會編程,你才能讓計算機替你解決問題呀!別擔心,編程其實也沒有想象那么難!只要你愿意學。
Scratch雖然是專門為少兒設計的編程語言,但其功能還是非常強大的,不僅可以創建動畫、游戲和故事書,還可以用來求解數學題,實現一些數學算法。學過Scratch后,將來再學習其他高級程序設計語言,理解起來也會更加順暢,更加容易!
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
