c语言编写程序:一个正整数,正读和反读都相同的数为回文数。例如22,131,2442,37073,6,…所有1位数都是回文数。给出一个正整数n(1≤n≤10000),求出1,2,…,n之中(包括1和n)的回文数的个数。
时间: 2024-02-13 10:01:19 浏览: 142
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
5星 · 资源好评率100%
好的,这是一道简单的算法题,可以使用暴力枚举法解决。我给你提供一个 C 语言的实现代码,你可以参考一下:
```c
#include <stdio.h>
// 判断一个数是否为回文数
int isPalindrome(int n) {
int temp = n, reversed = 0;
while (temp != 0) {
reversed = reversed * 10 + temp % 10;
temp /= 10;
}
return (reversed == n);
}
int main() {
int n, count = 0;
printf("请输入一个正整数 n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (isPalindrome(i)) {
count++;
}
}
printf("1 到 %d 中有 %d 个回文数\n", n, count);
return 0;
}
```
这个程序中,我们首先定义了一个函数 `isPalindrome`,用于判断一个数是否为回文数。如果一个数正读和反读都相同,那么它就是回文数。我们可以通过将这个数反转,然后和原数比较是否相等来判断。
在主函数中,我们输入了一个正整数 n,然后使用循环枚举 1 到 n 中的每个数,如果是回文数就将计数器加 1。最后输出计数器的值即可。
希望这个程序能够帮助到你!
阅读全文