1、阿里的考题:假设在n进制下,下面的等式成立:567*456=150216,n的值是()
A. 9
B 10
C 12
D 18
解:展开:(5*n^2+6*n+7)*(4*n^2+5*n+6)=n^5+5*n^4+2*n^2+n+6
20*n^4+(25+24)*n^3+(30+30+28)*n^2+(36+35)n+42=n^5+5*n^4+2*n^2+n+6
20*n^4+49*n^3+88*n^2+71*n+42=n^5+5*n^4+2*n^2+n+6
两边同时对n取余得:42%n=6%n=6 (1) //可以排除B.
两边同时除以n再对n取余得:(71+42/n)%n=(1+6/n)%n=1 (2) //可以比较第二位。
将答案带入等式(2),发现n=18满足条件(2)。
2、数组下标从0开始标记。
3、^异或符号,相同为0,不同为1。
4、宏的考点为:原式替换。所以宏一般都要加括号。
5、x^6+4*x^4+3*x^3+x+1最多运算多少次乘法(3次)
解:x^6+4*x^4+3*x^3+x+1=x^3*(x^3+4*x+3)+x+1=x^3*(x^3+x+x+x+x+3)+x+1
x^3=x*x*x用了2次乘法,x^3*x^3用了一次,共3次。第二个x^3可以赋给另一个变量,如:a=x^3。
6、16进制换算2进制和10进制。如:16进制10
2进制:一个拆分成4位:0001 0000 10进制:1*16^1+0*16^0=16