原题呢由于数字小,我们直接计算就能得到结果,那么在大的数字中我们会有更加简单的方式来解决这个问题
那么给出一题 假设在n进制中,下面的等式成立,567*456=150216,a的值是()。
A 9 B 10 C 12 D 18
首先我们有第一种方法,只判断个位数 6*7%n==6,通过这种方法能排除几个选项但显然并不靠谱
所以这里我们注重来说第二种方法也是通用的方法
我们把n带入原式得到
20n^4+49n^3+88n^2+71n+42=n^5+5n^4+2n^2+n+6
在这里我们两边对n取余得到42%n=6%n=6就是第一个方法的实质
那么我们可以有更好的处理方法,两边对除以n再对n取余
n^2等这些项对n取余后都等于0所以只剩下
(71+42/n)%n=(1+6/n)%n=1
化简得到(71+42/n)%n=1
这里不需要考虑浮点数的问题,取整数就可以了