C++で番号が回文であるかどうかを確認する再帰プログラム
入力として整数が与えられます。目標は、入力番号Numが回文であるかどうかを再帰を使用して見つけることです。
番号が回文であるかどうかを確認するには、その番号を逆にして、両方の番号が同じかどうかを確認します。逆の数が元の数と等しい場合、それは回文です。
例
入力 −数値=34212;
出力 − 34212は回文ではありません!
説明 − 34212を逆にすると、21243になります。34212!=21243したがって、入力番号は回文ではありません。
入力 −数値=32123;
出力 − 32123は回文です!
説明 − 32123を逆にすると、32132になります。32123!=32123したがって、入力番号は回文です。
以下のプログラムで使用されているアプローチは次のとおりです
このアプローチでは、入力番号num1と一時番号num2を受け取る再帰関数revrsNum(int num1、int num2)を使用しています。
基本ケースの場合-:num1が0の場合、num2を返します。
Else-:再帰を使用してnum1の逆を計算します。逆算して返します。
両方が同じである場合、入力番号は回文です。
-
入力番号Numを取ります。
-
Num2 =revrsNum(Num、0)
を取る -
関数revrsNum(int num1、int num2)は、num1の逆数を再帰的に生成し、逆数を返します。
-
num1が0の場合、逆に計算されたnum2を返します。
-
それ以外の場合は、num2に10を掛けて、num1%10を追加します。
-
num1 =num1/10を使用してnum1を10減らします。
-
revrsNum(num1、num2);
を使用して再帰します -
結果を返します。
-
メイン内で得られた結果を印刷します。
例
#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++プログラムでsubstring[L…R]が回文であるかどうかを確認するためのクエリ
この問題では、文字列str、substring [L...R]の2つの値LとRでそれぞれ構成されるクエリのQ数が与えられます。私たちのタスクは、サブストリング[L…R]が回文であるかどうかをチェックするためにクエリを解決するプログラムを作成することです。 問題の説明 −各クエリを解決するには、LからRの範囲内で作成された部分文字列が回文であるかどうかを確認する必要があります。 問題を理解するために例を見てみましょう 入力 str = “abccbeba” , Q = 3 Query[][] = {{1, 4}, {0, 6}, {4, 6}} 出力 Palindr
-
アレイが回文であるかどうか、またはC++でSTLを使用していないかどうかを確認するプログラム
n個の整数の配列arr[n]が与えられた場合、タスクは配列が回文であるかどうかを見つけることです。 C++でSTLを使用して指定されたタスクを実行する必要があります。 C ++には、STL(標準テンプレートライブラリ)の機能があります。これは、データ構造と、スタック、キュー、リストなどのいくつかの機能を提供するために使用されるC ++テンプレートクラスのセットです。これらを使用するには、知識が必要です。テンプレートクラスの。 回文は、シーケンスの前または後ろから同じように読み取られるシーケンスです。回文の簡単な例としては、-MADAM、RACECARなどがあります。配列は、以下の例のような