属于很简单的一道
代码:
#include<stdio.h>
#define M 997799
//project euler 4: palindrome number
//999*999=998001,so the largest palindrome number is 997799
int pali(int i) {
int t = 0;
for (int i1 = 100; i1 < 1000; i1++) {
if (!(i % i1)&&i/i1<1000) {
t=1;
printf("the result:%d*%d=", i1, i/i1);
break;}
}
return t;
}
int main() {
int t = 0, i = M;
for (;i>1e+5;) {
if (pali(i)) {
t = 1; break;}
if ((i / 1000) % 100) {
if ((i / 1000) % 10)i -= 1100;
else i -= 110;
}
else i -= 11;
}
if (t == 1)printf("%d\n", i);
else printf("error!\n");
return 0;
}
结果:
核心:一个是验证是否是三位数乘积的子函数pali(int i),一个是迭代的几行代码。