發新話題
打印

請教一個速算法的緣由

此速算法必須限定 b > 0 才正確 !

觀察算式
99*43 = 43*(100-1) = 4300 - 43 = 4200 + 100 - 43 = 4257

同理可得

99*(ab) = (ab)*(100 -1) = (ab00) - (ab) = (((ab) -1)00) + 100 - (ab) = a*1000 + (b - 1)*100 + (9 - a)*10 + (10 - b)

因此 b > 0 時,
千位數字為 a, 十位數字為 (9 - a),
以這兩個數字做成的二位數即 10*a + 9 - a = 9a + 9 = 9*(a+1)

而百位數字為 (b -1), 個位數字為 (10 - b),
以這兩個數字做成的二位數即 10*(b-1) + 10 -b = 9*b

b = 0 時,
千位數字為 (a -1), 十位數字為 (9 - a + 1),
以這兩個數字做成的二位數為 10*(a - 1) + 9 - a + 1 = 9*a

而百位數字為 9, 個位數字為 0,
以這兩個數字做成的二位數為 90


推廣型式示例  ( 其中 a,b,c,d 皆大於零 )
999*(abc) 的十萬位與百位所形成的二位數字為 9*(a+1)
萬位與十位所形成的二位數字為 9*(b+1)
千位與個位所形成的二位數字為 9*c
例:
999*125 = 1,8,  2,7  ,4,5 的某個排列 = 124875  
999*226 = 2,7,  2,7  ,5,4 的某個排列 = 225774  


9999*(abcd) 的則是
9*(a+1),  9*(b+1),  9*(c+1),  9*d
例:
9999*1235 = 1,8,  2,7  ,3,6,  4,5 的某個排列 = 12348765  
9999*2267 = 2,7,  2,7  ,6,3,  6,3 的某個排列 = 22667733

[ 本帖最後由 Joy091 於 2011-12-5 01:26 PM 編輯 ]

TOP

發新話題