概述
阿里曾经的一个笔试题:
在n进制下,567*456=150216成立,n的值是()
A.9
B.10
C.12
D.18
这个题如果拆开一项一项的算,肯定是可以,但是太浪费时间了。看最后一位数的话,6*7=42,42对9取余是6,42对12取余是6,42对18取余是6,42对10取余是2,所以可以排除掉B.但是还有三个选项。我们可以左右拆开的看。
左边 =(5*n^2+6*n+7)*(4*n^2+5*n+6)=20*n^4+49*n^3+88*n^2+71*n+42
右边=n^5+5*n^4+2*n^2+n^1+6
左边=右边
即20*n^4+49*n^3+88*n^2+71*n+42 = n^5+5*n^4+2*n^2+n^1+6;
1.两边同时对n取余,一定相等。
所以42对n取余一定等于6对n取余,n一定是比6大的数,因为乘数出现了6和7,所以6对n取余结果一定是6,那么42对n取余结果也一定是6,也就是上面所说的排除了B选项。
2.两边先除以n再对n取余,一定也是相等的。
所以(71+42/n)%n=(1+6/n)%n,然后把选项带进去试一下
A.9 (71+4)%9=3, (1+0)%9=1, 排除
C.12 (71+3)%12=2, (1+0)%12=1, 排除
D.18 (71+2)%18=1, (1+0)%18=1, 正确
所以本题答案是D
这样的方式更节约时间
最后
以上就是认真啤酒为你收集整理的关于进制的全部内容,希望文章能够帮你解决关于进制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复