首先应该判断回文数,其实就是反过来后是否相等;
比如:
453 = 3x100+5x10+4?
125 = 5x100+2x10+1?
即设置一个初始数,让其循环为 新数 = 新数*10 + 个位数 模式
我们知道一个整数求模就是个位数,除以10就是丢掉个位数;
所以回文数判断代码:
int main() { int xinshu = 0; int n, i; scanf("%d", &n); i = n; while (i != 0) { xinshu = xinshu * 10 + i % 10; i = i / 10; } if (xinshu == n) printf("%d\n", xinshu); xinshu = 0; return 0; }
然后开始循环所有的数字:
{ int xinshu = 0; int n, i, j; scanf("%d", &n); for (i = 1, j = 1; j <= n; j++) { i = j; while (i != 0) { xinshu = xinshu * 10 + i % 10; i = i / 10; } if (xinshu == j) printf("%d\n", xinshu); xinshu = 0; } return 0; }