【适用题型】编程题 【题目标题】寻找回文数 【问题描述】 所谓回文数就是将一个数从左向右读与从右向左读是一样的,例如,121和1331都是回文数。编写一个函数实现求正整数n以内的回文数。 【源文件名】ex403.c 【输入形式】输入一个正整数,为n的值 【输出形式】每行输出10个回文数,每两个回文数之间用逗号分隔
时间: 2023-11-22 08:52:15 浏览: 69
以下是C语言的代码实现:
```c
#include <stdio.h>
int isPalindrome(int n) {
int reversed = 0, temp = n;
while (temp > 0) {
reversed = reversed * 10 + temp % 10;
temp /= 10;
}
return n == reversed;
}
void printPalindromes(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
if (isPalindrome(i)) {
printf("%d", i);
count++;
if (count % 10 == 0) {
printf("\n"); // 每行输出10个回文数
} else {
printf(", "); // 每两个回文数之间用逗号分隔
}
}
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("在%d以内的回文数有:\n", n);
printPalindromes(n);
return 0;
}
```
主要思路是先定义一个 `isPalindrome` 函数判断一个数是否为回文数,然后在 `printPalindromes` 函数中遍历 1 到 n 的所有正整数,如果是回文数则输出。同时根据题目要求每行输出 10 个回文数,所以需要控制输出格式。
阅读全文