输入格式: 一行包含两个正整数 x , y (1≤x≤y≤10000)。 输出格式: 一行包含一个整数表示从x到y(包含x和y)中的所有正整数里有几个回文数。 用c写
时间: 2024-11-17 15:29:58 浏览: 34
在 C 语言中,你可以通过创建一个计数器变量并遍历指定区间的每个整数来解决这个问题。首先检查每一个数是否为回文,如果是,则增加计数器。下面是完整的代码示例:
```c
#include <stdio.h>
#include <stdbool.h> // 引入布尔类型以更清晰地表示条件
bool is_palindrome(int num) { // 辅助函数,判断数字是否为回文
int original_num = num;
int reversed_num = 0;
// 反转数字
while (num != 0) {
int digit = num % 10;
reversed_num = reversed_num * 10 + digit;
num /= 10;
}
// 比较反转后的数字是否与原数相同
return original_num == reversed_num;
}
int count_palindromes_in_range(int x, int y) { // 主函数,计算回文数的数量
int count = 0;
for (int i = x; i <= y; ++i) {
if (is_palindrome(i)) {
count++;
}
}
return count;
}
int main() {
int x, y;
scanf("%d %d", &x, &y); // 读取用户输入
// 检查输入范围
if (x > y || x < 1 || y > 10000) {
printf("输入范围错误,x 和 y 应满足 1 ≤ x ≤ y ≤ 10000。\n");
return 1;
}
int result = count_palindromes_in_range(x, y);
printf("在区间 [%d, %d] 内,共有 %d 个回文数。\n", x, y, result);
return 0;
}
```
当你运行这个程序,它会读取用户的 `x` 和 `y` 值,并输出这两个边界内的回文数总数。
阅读全文