欧拉工程第四题:求两个三位数相乘得到的最大回文数

    技术2026-03-17  7

    属于很简单的一道 代码:

    #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),一个是迭代的几行代码。

    Processed: 0.008, SQL: 9