上面的结论错误,我又重新写了一个
#include<stdio.h>
int main()
{
int i, j, k,m = 0,sw, wa, qi, ba, sh, ge;
for (i = 998001;i >= 10000;i--)
{
sw = i / 100000;
wa = (i - sw * 100000) / 10000;
qi = (i - sw * 100000 - wa * 10000) / 1000;
ba = (i - sw * 100000 - wa * 10000 - qi * 1000) / 100;
sh = (i - sw * 100000 - wa * 10000 - qi * 1000 - ba * 100) / 10;
ge = i % 10;
if (sw == ge && wa == sh && qi == ba)
{
/* printf("%d 是回文数\n", i); */
for (j = 999;j >= 100;j--)
{
for (k = 999;k >= 100;k--)
{
if (i == j * k && k != m) // 设置变量 m 的目的过滤重复(比如:1 x 2 与 2 x 1)
{
m = j;
printf("%d 是符合要求的回文数: %d = %d * %d\n", i, i, j, k);
break;
}
}
}
}
// 修改下面 else 语句的条件可以改变仅仅输出最大的一个,还是全部符合要求的回文数;
// 如条件改为 sw == 0,则仅输出 6 位数的回文数
else if(m != 0)
break;
}
}
|