|
发表于 2020-11-17 21:32:29
|
显示全部楼层
上面的结论错误,我又重新写了一个
- #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;
- }
- }
复制代码 |
|