C 言語による回文数のチェック

CBeginner
オンラインで実践に進む

はじめに

この実験では、C プログラムを書いて数値が回文数かどうかをチェックする方法を学びます。以下の手順に従ってこれを達成します。

注:コーディングを練習し、gcc を使ってコンパイルと実行方法を学ぶには、自分で ~/project/main.c ファイルを作成する必要があります。

cd ~/project
## main.c を作成する
touch main.c
## main.c をコンパイルする
gcc main.c -o main
## main を実行する
./main

回文数を理解する

回文数 とは、前から読んでも後ろから読んでも同じになる数値または文字列のことです。たとえば:121 や "racecar" などです。

変数の初期化

まず、プログラムに必要な変数を初期化します。与えられたプログラムでは、abcs の 4 つの変数を使用しています。これらの変数を使って必要な演算を行います。

#include<stdio.h>

int main()
{
    int a, b, c, s = 0;
    printf("Enter a number: ");
    scanf("%d", &a);
    c = a;
}

数値を逆にする

数値を逆順にして、元の数値と比較して回文数かどうかをチェックできるようにします。数値を逆順にするために while ループを使用します。

while(a > 0)
{
    b = a % 10; // 最後の桁を抽出する
    s = (s * 10) + b; // 逆順の数値に最後の桁を追加する
    a = a / 10; // 元の数値から最後の桁を削除する
}

元の数値と逆にした数値を比較する

最後に、逆順にした数値と元の数値を比較して、それが回文数かどうかをチェックします。

if(s == c)
{
    printf("%d is a Palindrome", c);
}
else
{
    printf("%d is not a Palindrome", c);
}

完全なコード

以下は、このプログラムの完全なコードです。

#include<stdio.h>

int main()
{
    int a, b, c, s = 0;

    printf("Enter a number: ");
    scanf("%d", &a);
    c = a;

    while(a > 0)
    {
        b = a % 10;
        s = (s * 10) + b;
        a = a / 10;
    }

    if(s == c)
    {
        printf("%d is a Palindrome", c);
    }
    else
    {
        printf("%d is not a Palindrome", c);
    }

    return 0;
}

まとめ

この実験では、C 言語のプログラムを書いて数値が回文数かどうかをチェックする方法を学びました。回文数のチェックの背後にある論理を学び、それをプログラムに実装しました。これで、この概念をより深く理解し、より複雑なプログラムでそれを実装することができるようになりました。