c语言如何判断回文数
时间: 2024-12-23 19:20:05 浏览: 12
在C语言中,判断一个整数是否是回文数可以采用双指针法。这种方法通常分为以下几个步骤:
1. 定义两个指针,一个指向数的开始位置(`start`),另一个指向结束位置(`end`)。
2. 当`start`小于等于`end`时,执行循环:
- 比较`start`和`end`所指的数字,如果它们不相等,则该数不是回文数。
- 否则,将`start`向右移动一位(加1),`end`向左移动一位(减1)。
- 继续比较直到`start`大于`end`。
3. 如果整个过程都没有发现不相等的数字,那么这个数就是回文数。
以下是简单的C语言代码示例:
```c
#include <stdio.h>
int isPalindrome(int num) {
int start = 0;
int end = num > 0 ? (num / 10) : 0; // 如果num为负数,end应该是一个较小的正数
while (start <= end) {
if (num % 10 != num / 10) { // 取个位和整除结果比对
return 0; // 不是回文数
}
num /= 10; // 移动到下一个位
start *= 10; // 移动到前一个位
end -= 9; // 因为每次移两位,所以end每次减去9
}
return 1; // 如果所有位都比对了,返回1表示是回文数
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPalindrome(num)) {
printf("%d是回文数。\n", num);
} else {
printf("%d不是回文数。\n", num);
}
return 0;
}
```
阅读全文