一、下圖是一張 10 * 10 的數字表格,表格的對角線上是一系列的重復的數字,嘗試心算出表中所有的數字總和。
答案:數字總和是 1000。
像是這樣的問題,我想很多人在直覺上就會想到——找規律,的確,只要找到規律、之后的事情就變得再簡單不過了。
第一種方法:根據正方形的對稱性來計算。
左上角和右下角數字之和為 20,平均數為10(如: 1 + 19, 2 + 18 , 3 + 17,4 + 16 等等),也就是說表格中的數字
都換成 10 ,其總和也不不變。即數字總和為 10 * 10 * 10 = 1000 。
第二種方法:逐行或逐列來計算。
第一行的數字總和 = 1 + 2 + 3 + … + 9 + 10 = ( 1 + 10) * 10 / 2 = 55 。
第二行的數字總和 = 55 + 10。因為第二行的每一個數字都比第一行大1。
第三行的數字總和 = 55 + 20。
依次類推…
第十行的數字總和 = 55 + 90。
所有數字總和 = 55 + ( 55 + 10 ) + ( 55 + 20 ) + ( 55 + 30 ) + … + ( 55 + 90 ) = 55 * 10 + ( 10 + 90 ) * 9 / 2 = 1000 。
由此可見,簡單的數學求和公式在此卻起到了巨大作用。
其求和公式原型為:
1 + 2 + 3 + … + n - 1 + n = n(n + 1)/2
變形,求前n個正偶數的和:
2 + 4 + 8 + … + 2n = 2(1 + 2 + … + n) = n(n + 1)
變形,求前n個正奇數的和:
1 + 3 + 5 + … + (2n - 1) = (1 + 2 + 3 + … + (2n -1) + 2n ) - (2 + 4 + 6 + … + 2n) = 2n(2n + 1) / 2 - n(n + 1) = n2
另外一個很重要的公式:2個各個次冪之和:
20 +21 + 22 + … + 2n = 2n+1 - 1。
二、求任意兩個18 位整數的乘積、其結果末尾有多少個連續的數字0。
注意:求的是結果的末尾有多少個連續的數字0.
我們假設已經計算出兩個數的乘積為 21601..800000000。
結果可以換種表達方式為:21601..8 * 108
又因為10只能分解為 2 * 5,所以也可以表達為:21601..8 * (2 * 5)8
所以我們可以利用如下方式來計算結果:
1、將兩個乘數分解質因數(只分解 2 或5)。
2、分別計算質因數 2 和 5 的個數。
3、Min(質因數2的個數,質因數5的個數)結果即為所求。
上面說的是加法和乘法,下面說一個關于取余的。
三、求任意 100位的整數對7取余的結果。
想一想,如果我們用筆去計算該問題,我們會怎么做呢?——除法豎式。
沒錯,我們將用最原始的,小學生都會除法豎式來解決該問題。
方法描述:
先取出100位數的第一位,被7除得余數(余數可能為0)。
用余數和 100位數的第二位,組成一個兩位數或一位數(因為余數可能為0),然后被7除得余數。
依次類推,最后所得余數即為所求。
好了,好好體味一下數學的魅力吧。歡迎大家給予補充~
新聞熱點
疑難解答