第一个问题是N位回文数的个数是多少?
分析:N是奇数与偶数时,是两种不同的计算方式。先看偶数,
n1 n2 .. nm nm .. n2 n1
N = m * 2
取值范围 n1: 1 ~ 9
n2 - nm: 0 ~ 9
所以回文数f(N) = 9 * POW(10, N/2 - 1)
再看奇数,
n1 n2 .. nm nm+1 nm .. n2 n1
N = m * 2 + 1
由f(N)= 9 * POW(10, N/2 - 1) * 10
第二个问题:pow (he, 2) = she
看十进制,e可能的情况:0 , 1, 5, 6,
其实已经可以穷举了。再计算看看吧,能不能更有技术含量一点:
pow(he, 2) = (h * 10 + e) * (h * 10 + e) = 100 * h + 20 * e * h + e * e
e = 0: pow(he, 2) = 100 * h 可见十位必须是0,没有可选解
e = 1: pow(he, 2) = 100 * h + 20 * h + 1 = 120 * h + 1 = 100 * s + h * 10 + 1 => 110 * h = 100 * s, 没有可选解
e = 5: pow(he, 2) = 100 * h + 100 * h + 25 = 200 * h + 25 = 100 * s + h * 10 + 5 => 190h + 20 = 100 * s
可以得到解 (h = 2, s = 4)
e = 6: pow(he, 2) = 100 * h + 120 * h + 36 = 100 * s + h * 10 + 6 => 210 * h + 30 = 100 * s
可以得到解 (h = 7, s = 15),但是s大于9,不是一个合理解。
因此解是:pow(25, 2) = 625。
其他进制的先不算了。这道题为什么是3星,觉得没那么复杂。是不是我的答案有不对的地方呢?