ホームページ >バックエンド開発 >C++ >C++ で数値が回文であるかどうかを確認する再帰プログラム

C++ で数値が回文であるかどうかを確認する再帰プログラム

WBOY
WBOY転載
2023-09-10 13:25:091297ブラウズ

C++ で数値が回文であるかどうかを確認する再帰プログラム

入力として整数を取得します。目的は、再帰を使用して入力数値 Num が回文であるかどうかを判断することです。

数値が回文かどうかを確認するには、数値を逆にして、両方の数値が同じかどうかを確認します。反転した数が元の数と等しい場合、それは回文です。

入力- Num = 34212;

出力- 34212は回文ではありません。

説明- 34212 を逆にすると、21243 になります。 34212 != 21243 したがって、入力された数値は回文ではありません。

入力 - Num = 32123;

出力 - 32123 は回文です。

説明 - 32123 を逆にすると、32132 が得られます。32123!= 32123 となるため、入力された数値は回文になります。

以下のプログラムで使用されるメソッドは次のとおりです。

このメソッドでは、入力数値 num1 と一時的な数値を受け入れる再帰関数 revrsNum(int num1, int num2) を使用します。番号2。

基本ケースの場合 -: num1 が 0 の場合、num2 を返します。

p>

Else-: 再帰を使用して、num1 の逆順を計算します。計算の逆数を返します。

両方が同じ場合、入力数値は回文になります。

  • 入力番号 Num を取得します。

    • 入力番号 Num を取得します。 p>

    • Get Num2 = revrsNum(Num,0)

    • 関数 revrsNum(int num1, int num2) は、num1 の逆数値を再帰的に生成します。そして反転した数値を返します。

    • num1 が 0 の場合、反転した計算結果は num2 を返します。

    • それ以外の場合は、 num2 を 10 で乗算し、 num1 を加算します。

    • num1=num1/10 を使用して、num1 を 10 減らします。

    • revrsNum(recursive num1, num2);

    • を使用して結果を返します。

    • main 内で取得した結果を出力します。

    #include <bits/stdc++.h>
    using namespace std;
    int revrsNum(int num1, int num2){
       if (num1 == 0){
          return num2;
       }
       num2 *= 10;
       num2 += (num1 % 10);
       num1 = num1/10;
       return revrsNum(num1, num2);
    }
    int main(){
       int Num = 1345431;
       int Num2 = revrsNum(Num,0);
       if (Num == Num2){
          cout <<Num<<" is Palindrome!";
       }
       else{
          cout <<Num<<" is not a Palindrome!";
       }
       return 0;
    }

    出力

    上記のコードを実行すると、次の出力が生成されます

    1345431 is Palindrome!

以上がC++ で数値が回文であるかどうかを確認する再帰プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。