C语言给你一个整数 x ,如果 x 是一个回文整数,打印 1;否则,打印 0 。
时间: 2024-09-15 16:02:35 浏览: 51
在C语言中,判断一个整数是否为回文数可以分为以下几个步骤:
1. 定义一个函数 `isPalindrome(int x)`,接受一个整数作为输入。
2. 判断输入的整数长度,如果是奇数,那么只比较前半部分和后半部分的第一个元素即可。
3. 如果数字长度为偶数,需要比较除中间数外的所有对应位数字是否相等。
4. 可以通过两个指针分别从两端向中间移动,逐位对比,直到它们相遇或者找到不相等的数字。
5. 如果在整个过程中所有数字都匹配,则返回1表示是回文数,否则返回0。
以下是一个简单的示例函数实现:
```c
#include <stdbool.h>
bool isPalindrome(int x) {
if (x < 0) return false; // 负数不是回文数
int start = 0;
int end = (int)sprintf("%d", x); - 1; // 获取字符串形式的长度减一,因为 end 包含了小数点
while (start < end) {
if (x / 10 != (x % 10)) return false; // 检查当前位是否相等
x /= 10; // 移动到下一个位
end -= 2; // 小数点位置不用检查,每次减少两位
}
return true;
}
int main() {
int x;
scanf("%d", &x);
printf("%d\n", isPalindrome(x) ? 1 : 0);
return 0;
}
```
阅读全文