-
C ++でのatoi()の再帰的実装
数字を含む文字列が与えられます。目標は、再帰的なatoi()メソッドを使用して同等の数を見つけることです。 int atoi(const char * str)は、文字列引数strを整数(int型)に変換します。 例-: 入力 − str [] =58325 出力 −同等の小数は:58325 説明 −文字列には同等の番号58325が含まれています 入力 − str [] =00010 出力 −同等の小数は:1 説明 −文字列には同等の数10が含まれています。 以下のプログラムで使用されているアプローチは次のとおりです このアプローチでは、入力文字列とその長さを取得し、
-
C++での素数の再帰プログラム
入力として整数が与えられます。目標は、再帰を使用して、入力数Numが素数であるか非素数であるかを見つけることです。 数が素数であるかどうかを確認するには、i=2からi<=Num/2までのトラバースを開始します。いずれかのiがNumで完全に割り切れる場合、素数は1とその数自体でしか割り切れないため、その数は素数ではありません。 例 入力 −数値=32 出力 − 32は非プライムです! 説明 − i=2からi<=32/2までトラバースを開始すると、最初は2で完全に割り切れ、非素数であることを示します。 入力 −数値=43 出力 − 43は素数です! 説明 − i=2からi<=43
-
C++で番号が回文であるかどうかを確認する再帰プログラム
入力として整数が与えられます。目標は、入力番号Numが回文であるかどうかを再帰を使用して見つけることです。 番号が回文であるかどうかを確認するには、その番号を逆にして、両方の番号が同じかどうかを確認します。逆の数が元の数と等しい場合、それは回文です。 例 入力 −数値=34212; 出力 − 34212は回文ではありません! 説明 − 34212を逆にすると、21243になります。34212!=21243したがって、入力番号は回文ではありません。 入力 −数値=32123; 出力 − 32123は回文です! 説明 − 32123を逆にすると、32132になります。32123!
-
C++でn個の整数のGCDの式を出力する再帰プログラム
入力として整数が与えられます。目標は、再帰を使用してn個の数値のGCDの式を出力することです。 3つの数値のGCDは、a1、b1およびc1がgcd(a1、gcd(b1、c1))になることを知っています。同様に、3つを超える数値の場合、gcdはgcd(a1、gcd(b1、 gcd(c1…..、gcd(y1、z1))。 例 入力 −数値=4; 出力 −式は次のとおりです: GCD(int a3、GCD(int a2、GCD(int a1、int b1))) 入力 −数値=6; 出力 −式は次のとおりです。GCD(int a5、GCD(int a4、GCD(int a3、GCD(in
-
C++での2進化10進数の再帰プログラム
2進数を含む文字列が与えられます。目標は、再帰的な方法を使用して同等の10進数を見つけることです。 2進数は、次の方法を使用して10進数に変換できます-:LSBからMSBにトラバースし、それぞれに2 iの累乗を掛けます。 ここで、0 <=i<=noです。桁数とそれ以前のすべての結果。 このためのさまざまな入出力シナリオを見てみましょう- 入力 − binStr [] =110010 出力 −指定されたバイナリの等価10進数:50 説明 -110010を10進数に変換すると、数値は次のようになります。- =0 * 2 0 + 1 * 2 1 + 0 * 2 2 + 0
-
C++で配列の最小要素と最大要素を見つけるための再帰プログラム
入力として整数配列Arr[]が与えられます。目標は、再帰的な方法を使用して、配列の中から最大要素と最小要素を見つけることです。 再帰を使用しているため、length =1に達するまで配列全体をトラバースし、ベースケースを形成するA[0]を返します。それ以外の場合は、現在の要素を現在の最小値または最大値と比較し、後の要素の再帰によってその値を更新します。 このためのさまざまな入出力シナリオを見てみましょう- 入力 − arr ={12,67,99,76,32}; 出力 −配列の最大値:99 説明 −すべての要素の中で99が最大です。 入力 − arr ={1,0、-99,9,3};
-
C++でスタックを使用して数値を反転します
入力として整数Numが与えられます。目標は、スタックを使用して数値の逆数を見つけることです。 スタック :-スタックはC ++のデータ構造であり、データをLIFO(後入れ先出し)方式で格納します。スタックの主な操作は次のとおりです-: 宣言-:stack stck; //stckはスタック変数になりました。 top()を使用してトップを検索する 。関数stck.top()は、stckの最上位要素の参照を返します pop()を使用してトップを削除する 。関数はstckから最上位の要素を削除します push()を使用して要素を上部に追加する 。関数stck.push(
-
C++での再帰的選択ソート
選択ソートは、配列を最初から繰り返し、各要素をリスト内の最小の要素に置き換えることによってデータをソートするために使用されるソートアルゴリズムの1つです。先に進むと、左側の配列が並べ替えられ、右側の配列は並べ替えられません。移動するたびに、スワッピングによってインデックスの現在の位置に次に小さいものが配置されます。 選択ソートアルゴリズム int arr [5] ={5,4,2,1,3}; int i、j; インデックスi=0からi<配列サイズ-1までトラバースします インデックスj=i+1から配列サイズ-1までトラバースします 最小のものを見つけて、そのin
-
C ++で指定された操作を使用して、配列を単一の要素に縮小します
入力として整数変数Numberを指定します。 1からNumberの範囲の要素をソートされた順序で含む配列を考えてみましょう。各ステップで奇数位置の要素が削除されるように配列に対して操作を実行すると、次に、この操作をN回実行して、要素が1つだけ残るようにします。その要素を最後に印刷します。 注-:要素の配置は、インデックス0の配列が1番目の位置になるようになります。 配列内の要素数のテストケース 入力番号=1、出力=1 入力番号=2、出力=2 入力番号=3、出力=2 入力番号=4、出力=4 入力番号=5、出力=4 入力番号=6、出力=4 入力番号=7、出力=4 .
-
C ++で指定された操作を使用して、配列を単一の整数に縮小します
入力として整数変数Numberを指定します。 1からNumberの範囲の要素を任意の順序で含む配列を考えてみましょう。 のような配列に対して1回の操作を実行すると 配列から2つの要素AとBを選択します アレイからAとBを削除します AとBの二乗和を配列に追加します 最後に単一の整数値を取得します。目標は、その要素の可能な最大値を見つけることです。 優先キューの使用 最終結果を最大化するには、最大になるようにAとBを選択する必要があります。 最大のAとBを見つけるために、優先度付きキューを使用して、その中に要素の値を格納します。 優先キューは要素を降順で
-
分数をC++で最も低い形式に減らします
入力として2つの整数Num1とNum2が与えられます。整数は分数Num1/ Num2として表すことができます 。目標は、この割合を最も低い形式に減らすことです。 GCDを使用して最大公約数を見つける 両方の数値の最大公約数を計算します。 両方の数値をそのgcdで割ります 除算後、両方の変数を商として設定します。 最も低い分数はNum1/Num2になります。 例 入力 − Num1 =22 Num2 =10 出力 − Num1 =11 Num2 =5 最低分数:11/5 説明 −22と10のGCDは2です。 22/2=11および10/2=5 最低の
-
C ++で特定の操作を実行して、数値を1に減らします。
入力として整数を指定します。目標は、入力数を1に減らすために必要な最小のステップ数または操作数を見つけることです。実行できる操作は次のとおりです-: 数値が偶数の場合は、2で割ります。 Numberが奇数の場合は、1ずつインクリメントまたはデクリメントします。 例 入力 −番号=28 出力 − 28を1:6に減らすための最小ステップ 説明 − 28は偶数です-2で割る=14 14は偶数-2で割る=7 7は奇数です-1ずつインクリメント=8 8は偶数です-2で割る=4 4は偶数-2で割る=2 2は偶数です-2で割る=1 入力 −数値=9 出力 − 9を
-
C++での行列の行方向と列方向のトラバーサル
マトリックスは2つの方法でトラバースできます。行マイズトラバーサルは、最初の行から2番目、というように最後の行まで、各行を1つずつ訪問します。行の要素は、インデックス0から最後のインデックスまで返されます。 列ごとのトラバーサルでは、要素は最初の列から最後の列に順番にトラバースされます。 2DマトリックスではM[i][j]。インデックスiは行を表すために使用され、インデックスjは列を表すために使用されます。行ごとのトラバーサルの場合は、から開始します。 i=0行目および0<=j<最後のインデックス i=1行目および0<=j<最後のインデックス ..... i=最後の行と0<=j<
-
C++の正方行列の2つの対角線にある行ごとの共通要素
入力として2D正方行列を指定します。目標は、一次対角線と二次対角線の両方に共通する要素を見つけることです。入力行列がの場合 1 2 3 2 2 4 1 4 7 その場合、その一次対角線は1 2 7であり、二次対角線は321です。共通要素は2です。 両方に常に少なくとも1つの共通の要素があります。 例 入力 −マトリックス[] [5] ={{1、2、1}、{4、1、6}、{1、8、1}}; 出力 −対角線の行方向の共通要素:3 説明 −マトリックスは次のとおりです。 1 2 1 4 1 6 1 8 1 一次対角線=11 1、二次対角線=1 1 1 3つの値はすべて共通です。
-
C++で特定の配列内の要素を線形に検索する再帰プログラム
任意の順序で整数を含む整数配列Arr[]が与えられます。目標は、配列の再帰検索を使用して、配列に存在する入力整数値を見つけることです。 入力配列Arr[]にvalが見つからない場合は、-1を返します。 Arr[]で見つかった場合はvalのインデックスを出力します。 例 入力 −arr [] ={11,43,24,50,93,26,78} val =26 出力 −インデックス5で26が見つかりました 説明 − Elements in the array start from index 0 to index=array length -1. First index=0 last in
-
C++での再帰的な挿入とトラバーサルのリンクリスト
リンクリストを形成するために使用される整数値が与えられます。タスクは、最初に挿入し、次に再帰的アプローチを使用して単一リンクリストをトラバースすることです。 最後にノードを再帰的に追加 ヘッドがNULLの場合→ヘッドにノードを追加 それ以外の場合は、headに追加します(head→next) ノードの再帰的走査 ヘッドがNULLの場合→終了 それ以外の場合はprint(head→next) 例 入力 − 1 --2 -7 -9 -10 出力 −リンクリスト:1→2→7→9→10→NULL 入力 − 12-21-17-94-18 出力 −リンクリスト
-
C++でリンクリストを交互に分割するための再帰的アプローチ
入力として単一リンクリストが与えられます。目標は、リストを、元のリストの代替ノードを持つ2つの単一リンクリストに分割することです。入力リストにノードa→b→c→d→e→fがある場合、分割後、2つのサブリストはa→c→eとb→d→fになります。 2つのポインタN1とN2を取ります。1つは元のリストの先頭を指し、もう1つは先頭→次を指します。次に、両方のポインタを次のノードに移動し、サブリストを作成します。 例 入力 −リスト:-1→5→7→12→2→96→33 出力 −元のリスト:1 5 7 12 2 96 33 リスト1:1 7 2 33 リスト2:5 12 96 説明 −
-
C++のリンクリストの最後からn番目のノードを見つけるための再帰的アプローチ
単一リンクリストと正の整数Nを入力として指定します。目標は、再帰を使用して、指定されたリストの最後からN番目のノードを見つけることです。入力リストにノードa→b→c→d→e→fがあり、Nが4の場合、最後から4番目のノードはcになります。 最初にリストの最後のノードまでトラバースし、再帰(バックトラッキング)増分カウントから戻ります。 countがNに等しい場合、結果として現在のノードへのポインタを返します。 このためのさまざまな入出力シナリオを見てみましょう- 入力 −リスト:-1→5→7→12→2→96→33 N =3 出力 −最後からn番目のノードは次のとおりです:2 説明 −
-
C++で同一の文字のペアの間にスターを挿入する再帰プログラム
入力として文字列str1を指定します。目標は、入力文字列内の同一の文字のペアの間に「*」を挿入し、再帰的アプローチを使用して結果の文字列を返すことです。 入力文字列がstr1= wellnessの場合 その場合、出力は wel * lnes * sになります 例 入力 − str1 =happiness 出力 −追加後の文字列*:hap * pines * s 説明 − ppとssのペアの間に*を追加すると、結果の文字列 hap * pines * sが得られます。 入力 − str1 =” swimmmmingggg pooool” 出力 −追加後の文字列*:swim
-
C++での長さと幅の差を最小限に抑えた長方形
入力として長方形の領域を指定します。目標は、長さと幅の差が最小になるように長方形の辺を見つけることです。 長方形の面積=長さ*幅。 例 入力 −面積=100 出力 −最小の差のある長方形の側面: 長さ=10、幅=10 説明 −面積=100の辺。 2〜50、4〜25、5〜20、10〜10。最小の差のある辺は10〜10で、差は0です。ご存知のとおり、正方形はすべての辺が等しい長さの長方形です。 入力 −面積=254 出力 −最小の差のある長方形の側面: 長さ=127、幅=2 説明 −面積254の長方形を作成するために、最小の差を持つ可能な辺のみが127と2です。 以下の