【适用题型】编程题 【题目标题】寻找回文数 【问题描述】 所谓回文数就是将一个数从左向右读与从右向左读是一样的,例如,121和1331都是回文数。编写一个函数实现求正整数n以内的回文数。 【源文件名】ex403.c 【输入形式】输入一个正整数,为n的值 【输出形式】每行输出10个回文数,每两个回文数之间用逗号分隔
时间: 2023-07-15 09:12:53 浏览: 105
huiwenshu.zip_回文数华为
下面是一个 C 语言的实现代码,可以满足题目要求:
```c
#include <stdio.h>
// 判断一个数是否为回文数
int is_palindrome(int n)
{
int temp = n, reverse = 0;
while (temp > 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return n == reverse;
}
// 输出 n 以内的回文数
void print_palindromes(int n)
{
int count = 0;
for (int i = 1; i <= n; i++) {
if (is_palindrome(i)) {
printf("%d", i);
count++;
if (count % 10 == 0) {
printf("\n");
} else {
printf(", ");
}
}
}
}
int main()
{
int n;
printf("请输入正整数n:");
scanf("%d", &n);
print_palindromes(n);
return 0;
}
```
函数 `is_palindrome` 用于判断一个数是否为回文数,实现方法是将这个数反转后与原数比较。函数 `print_palindromes` 则用于输出 n 以内的回文数,每输出 10 个回文数就换行。在 `main` 函数中,读入了输入的正整数 n,并调用 `print_palindromes` 函数输出回文数。
阅读全文