在C語言中,判斷一個數是否是回文數的常見算法是將該數轉換為字符串,然后判斷該字符串是否是回文字符串。下面是一個示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isPalindrome(int num) {
char str[20];
sprintf(str, "%d", num); // 將整數轉換為字符串
int len = strlen(str);
for (int i = 0; i < len/2; i++) {
if (str[i] != str[len-i-1]) {
return 0; // 不是回文數
}
}
return 1; // 是回文數
}
int main() {
int num;
printf("請輸入一個整數:");
scanf("%d", &num);
if (isPalindrome(num)) {
printf("%d是回文數\n", num);
} else {
printf("%d不是回文數\n", num);
}
return 0;
}
在上述代碼中,通過sprintf函數將輸入的整數轉換為字符串,然后使用一個循環遍歷字符串的前半部分,判斷是否與對應的后半部分相等。如果有任何不相等的字符,則該數不是回文數。如果循環結束后沒有找到不相等的字符,那么該數就是回文數。