可以通过以下步骤来判断一个数是否为回文数:
定义一个函数 isPalindrome
,该函数接收一个整数作为参数,返回一个布尔值,表示该整数是否为回文数。
在 isPalindrome
函数中,将传入的整数转换为字符串,方便进行逐位比较。
使用两个指针 left
和 right
,分别指向字符串的开头和结尾。
使用一个循环,判断 left
指针小于等于 right
指针时,执行以下操作:
left
指针所指的字符与 right
指针所指的字符不相等,则返回 false
,表示不是回文数。left
指针向右移动一位,将 right
指针向左移动一位,继续比较下一位字符。若循环结束后没有返回 false
,则说明整数是回文数,返回 true
。
下面是一个示例代码:
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool isPalindrome(int x) {
// 将整数转换为字符串
char str[20];
sprintf(str, "%d", x);
int left = 0;
int right = strlen(str) - 1;
while (left <= right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
int x;
printf("请输入一个整数:");
scanf("%d", &x);
if (isPalindrome(x)) {
printf("%d 是回文数\n", x);
} else {
printf("%d 不是回文数\n", x);
}
return 0;
}
在上述示例代码中,首先定义了一个 isPalindrome
函数来判断一个整数是否是回文数。在 main
函数中,通过用户的输入调用 isPalindrome
函数,并根据返回值输出结果。