C言語 回文数判定 forループを使った実装方法

回文数とは、左から右へ読んでも右から左へ読んでも同じ数字のことを指します。例えば1221や12321などです。forループを使って、数字が回文数かどうかを判定することができます。具体的な手順は次の通りです。

  1. 変数numに入力された数字を保存します。
  2. numを別の変数tempに割り当てて、後で比較に使用します。
  3. numを逆順に並べ替えて、変数reverse_numに保存します。
  4. 使用 for ループを使って、num と reverse_num の対応する位置の数字を一つずつ比較し、どれかが違う場合は回文数ではないとして直ちに false を返します。
  5. すべての位置の数字が等しい場合、それは回文数であることを示します。Trueを返します。

以下はサンプルコードです。

#include <stdio.h>

int isPalindrome(int num) {
    int temp = num;
    int reverse_num = 0;
    
    // 反转数字
    while (temp > 0) {
        reverse_num = reverse_num * 10 + temp % 10;
        temp /= 10;
    }
    
    // 判断是否是回文数
    while (num > 0) {
        if (num % 10 != reverse_num % 10) {
            return 0; // 不是回文数
        }
        num /= 10;
        reverse_num /= 10;
    }
    
    return 1; // 是回文数
}

int main() {
    int num;
    printf("请输入一个数字:");
    scanf("%d", &num);
    
    if (isPalindrome(num)) {
        printf("%d 是回文数\n", num);
    } else {
        printf("%d 不是回文数\n", num);
    }
    
    return 0;
}

上記のコードを使用して、数字が回文数かどうかを判別できます。

bannerAds