题目
一个数字,将各个位求和,删去一个数,并且说出剩余位上各数之和,可以猜出删去的数是什么。
思路
通过列举发现,一个数减去各个位之和后的数必定为⑨的倍数,如果可以证明这一点并且证明这个数在删去一位后仍位⑨的倍数即可。
证明
对于任何一个十进制数(以4位数为例),都可以写成
a_{1}*1000+a_{2}*100+a_{3}*10+a_{4}
有取模(mod)运算符,取模运算:a % p(或a mod p),表示a除以p的余数。
mod有以下性质
- (a + b) % p = (a % p + b % p) % p
- (a - b) % p = (a % p - b % p) % p
- (a * b) % p = (a % p * b % p) % p
设\(x=a_{1}*1000+a_{2}*100+a_{3}*10+a_{4}\)
x减去各个位数之和即\(a_{1}*1000+a_{2}*100+a_{3}*10+a_{4} - a_{1} - a_{2} - a_{3} -a_{4}\)
等于\(a_{1}*999+a_{2}*99+a_{3}*9 = y\)
\(y\bmod 9 = a_{1}*999 \bmod 9 +a_{2}*99 \bmod 9 +a_{3}*9 \bmod 9 = 0 \)
所以一个数减去各个位之和后的数必定为⑨的倍数
对于任意的一个⑨都倍数y都有
a_{1}*1000+a_{2}*100+a_{3}*10+a_{4} \bmod 9 = 0
可以写成
a_{1} \bmod 9 *1000 \bmod 9+a_{2} \bmod 9 *100 \bmod 9+a_{3}\bmod 9*10 \bmod 9+a_{4} \bmod 9 = 0
即
a_{1} \bmod 9 *1+a_{2} \bmod 9 *1+a_{3} \bmod 9 *1+a_{4} \bmod 9 = 0
所以 a_{1}+a_{2}+a_{3}+a_{4} \bmod 9 = 0
也就是说⑨的倍数个各个位之和也是⑨的倍数,所以当说出删掉一个数后的各个位数之和时,可以通过判断该数和那个⑨的倍数最接近而猜出删去了哪个数
Comments NOTHING