解题思路:
先用暴力的方法穷举出所有的五、六位数
然后再到循环里面判断,是否符合题目要求,符合则输出
回文数就是从左往右看和从右往左看都是一样的,例如:12321 从右边往左边看还是12321
接下来就是如何把这些转换成编程的思维
正着和反着都一样,那就是这个数字反转后,和原来的值一样,那么,他就是回文数
数字反转的代码:
while(num > 0) { a = a * 10 + num % 10; //a的初始值为0 num = num / 10; }
例如:12321的反转
先加上12321 % 10 的值 , 也就是 1
之后,12321 / 10 = 1232
然后再进行循环
不过,1要先乘10 变成 10 之后 再加上 1232 % 10 = 2 ,所以最后的结果是12
然后 1232 / 10 = 123
之后一直这样的循环
直到12321被除成了0 , 就可以退出循环了
接下来还有一个题目的要求
就是这些回文数中的每一个数加起来,要为一开始输入的值
那我们就可以在之前的循环中,把每次模10的结果累加起来,再用这个数和一开始输入的数进行比较
看是否相同
参考代码:
#include <stdio.h> int main() { int n , num; scanf("%d", &n); for (int i = 10000; i <= 999999; i++) { int t = i,t2 = i; int sum = 0, num = 0; while (t > 0) { sum += t % 10; num = num * 10 + t % 10; t /= 10; } if (sum == n && num == i) printf("%d\n", i); } return 0; }
0.0分
11 人评分
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:624 |
点我有惊喜!你懂得!浏览:2069 |
C语言训练-邮票组合问题* (C语言代码)......浏览:644 |
C二级辅导-进制转换 (C语言代码)浏览:514 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:575 |
1157题解浏览:710 |
关于C语言变量位置的问题浏览:270 |
C二级辅导-同因查找 (C语言代码)浏览:563 |
C二级辅导-统计字符 (C语言代码)浏览:476 |