可以通過以下步驟來判斷一個數是否為回文數:
定義一個函數 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
函數,并根據返回值輸出結果。