题解 | #回文对称数#
回文对称数
https://www.nowcoder.com/practice/5b143af8328f4e42adf5e10397ae44ef
#include <stdio.h>
// 判断一个数是否是回文数
int test(int x)
{
char arr[20]; // 定义字符数组存储整数的字符串表示
int sz, left, right;
// 将整数转换为字符串
sprintf(arr, "%d", x);
// 计算字符串的长度
sz = 0;
while (arr[sz] != '\0')
{
sz++;
}
// 双指针判断是否为回文
left = 0;
right = sz - 1;
while (left <= right)
{
if (arr[left] != arr[right])
{
return 0; // 不是回文数
}
left++;
right--;
}
return 1; // 是回文数
}
int main()
{
int n, i;
scanf("%d", &n); // 输入整数 n
for (i = 1; i <= n; i++)
{
if (test(i))
{
printf("%d\n", i); // 输出回文数
}
}
return 0;
}
查看12道真题和解析