题解 | 回文对称数
回文对称数
https://www.nowcoder.com/practice/5b143af8328f4e42adf5e10397ae44ef
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
// 检查输入是否合法
if (n < 1 || n > 100000) {
printf("输入错误!n必须在1-100000之间\n");
return 1;
}
// 从1到n逐个检查每个数字
for (int i = 1; i <= n; i++) {
// 如果i是一位数(1-9),直接是回文数
if (i < 10) {
printf("%d\n", i);
} else {
// 对于两位及以上的数字,判断是否是回文数
int original = i; // 保存原始数字
int reverse = 0; // 用于存储反转后的数字
int temp = i; // 临时变量用于处理
// 反转数字
while (temp > 0) {
reverse = reverse * 10 + temp % 10;
temp = temp / 10;
}
// 如果反转后的数字等于原数字,就是回文数
if (original == reverse) {
printf("%d\n", i);
}
}
}
return 0;
}
