回文数就是从前往后读和从后往前读都一样的数。由两个位数相乘得到的最大的回文数是 9009 = 91 * 99。
求由两个位数相乘得到的最大的回文数。
#include <stdio.h>
// 判断是否是回文数
int func (int x) {
// t 是x倒转之后的结果
int t = 0, r = x;
while(x != 0) {
t = t * 10 + x % 10;
x /= 10;
}
return t == r;
}
int main () {
int ans = 0;
for (int i = 100; i < 1000; i++) {
for(int j = i; j < 1000; j++) {
int t = j * i;
if(func(t)) {
// 最大的回文乘积
if(ans < t) {
ans = t;
}
}
}
}
printf("%d\n", ans);
return 0;
}