帮同学写的 C 语言结课作业,内容是一个有趣的读心术小游戏。原理很简单,下面解释具体的数学原理。
假设一个两位数是 X = a * 10 + b
。
那么,其本身减去个位数和十位数之后只能在集合 A = {09, 18, 27, 36, 45, 54, 63, 72, 81}
。
论证过程为:
Y = X - a - b
= a * 10 + b - a - b
= a * 9
所以,Y 只能是 9 的倍数。
又因为 a ∈ [1, 9] 且 a ∈ N+
,
所以 Y ∈ {09, 18, 27, 36, 45, 54, 63, 72, 81}
。
也就是说,无论用户选择的是什么数字,其最后计算得到的数一定在这 9 个数之中的一个,那么我们只需要确保这 9 个数的符号相同即可,最后展示的也一定是该符号。