题解 | #回文对称数#
回文对称数
https://www.nowcoder.com/practice/5b143af8328f4e42adf5e10397ae44ef
#include <stdio.h> #include <math.h> typedef unsigned int uint;//重命名 int main() { uint n = 0; while (1 == scanf("%u", &n)) { for (uint i = 1; i <= n; i++) { if (i < 10) { // 个位数都是回文数 printf("%u\n", i); } else { // 获取数字i的位数 uint count = 1; uint tmp = i; while (tmp /= 10) { count++; } // 获取回文数 tmp = i; // 创建一个回文数 uint sum = 0; // 创建一个除数 uint mod = pow(10, count - 1); // 创建一个乘数 uint mul = 1; while (mod) { // tmp%mod表示当前数字的最高位上的数字是多少 sum += (mul * (tmp / mod)); tmp %= mod; mul *= 10; mod /= 10; } // 判断回文数与数字i是否相等 if (i == sum) { printf("%u\n", i); } } } } return 0; }