-
C++でのネスビットの不等式
0 3つの数が与えられた場合、3つの数がネスビットの不等式を満たすかどうかを確認する必要があります。 3つの数がネスビットの不等式を満たしているかどうかをテストできます。簡単なプログラムです。 アルゴリズム a、b、cの3つの数字を初期化します。 方程式から各部分の値を計算します。 すべて追加します。 合計が1.5以上の場合は、ネスビットの不等式を満たし、それ以外の場合は満たされません。 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/stdc++.h> using namespace std; bool isValidNesbit
-
ニューマン-シャンクス-ウィリアムズはC++で素数
ニューマン-シャンクス-ウィリアムズプライムシーケンスは次のとおりです 1、1、3、7、17、41 ... シーケンス項目を一般化すると、次のようになります a0=1 a1=1 an=2*a(n-1)+a(n-2) アルゴリズム 番号nを初期化します。 シーケンス1と1の最初の番号を初期化します。 nまで繰り返すループを作成します。 前の数値を使用して次の数値を計算します。 前の2つの番号を更新します。 最後の番号を返します。 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/stdc++.h> using namespace st
-
C++での入力と同じ順序で次に大きい要素
次に大きい要素は、その次の最初の大きい要素です。例を見てみましょう。 arr =[4、5、3、2、1] 4の次に大きい要素は5であり、要素3、2、1の次に大きい要素は-1です。これは、それらの後に大きい要素がないためです。 アルゴリズム 乱数で配列を初期化します。 スタックとアレイを初期化します。 配列の最後から繰り返します。 スタックが空になり、一番上の要素が現在の要素以下になるまで、要素をスタックから削除します。 スタックが空の場合、次に大きな要素はありません。したがって、結果の配列に-1を追加します。 スタックが空でない場合、一番上の要素は現在の
-
C++の次の大きな要素
次に大きい要素は、その次の最初の大きい要素です。例を見てみましょう。 arr =[4、5、3、2、1] 4の次に大きい要素は5であり、要素3、2、1の次に大きい要素は-1です。これは、それらの後に大きい要素がないためです。 アルゴリズム 乱数で配列を初期化します。 スタックを初期化します。 スタックに最初の要素を追加します。 配列の要素を繰り返し処理します。 スタックが空の場合は、現在の要素をスタックに追加します。 現在の要素がスタックの最上位の要素よりも大きい間。 一番上の要素を、次に大きい要素を現在の要素として印刷します。 一番上の要素
-
C++でもう1つのセットビット数を持つ次に大きい整数
数値nが与えられているので、バイナリ表現でnよりも1つ多いセットビットを使用して、nよりも大きい数値を見つける必要があります。 2進表現の数字1はセットビットと呼ばれます。 例を見てみましょう。 入力 124 出力 125 アルゴリズム 番号を初期化しますn 。 設定されたビット数のカウントを取得する関数を記述します。 n + 1で反復変数を初期化します 。 無限ループを記述します。 nより大きい数値のセットビット数を確認します 。 見つけたら番号を返します。 実装 以下は、C++での上記のアルゴリズムの実装です #include
-
C++で同じ桁数のAとBを持つNよりも大きい数
与えられたN 、 A 、および B 。同じ数のAでNより大きい数を見つけます およびB 数字。例を見てみましょう。 N = 1234 A = 2 B = 3 与えられた桁数の可能性をすべてチェックする必要があります。番号を形成するために2桁があります。また、数字の各桁数は同じである必要があります。 アルゴリズム A、B、およびNを初期化します。 再帰関数を記述します。 現在の数がNより大きいかどうかを確認します Aの数は同じです およびB 数字。 上記の条件が満たされている場合は、番号を返します。 結果に数字Aを追加します。 結果に数字Bを追加します。 上記の
-
C++で最大1つのスワップ操作を使用して次に大きい数
数値nが与えられた場合、結果の数値が数値nより大きくなるように、数値の任意の2桁を交換します。それが不可能な場合は、-1を出力します。例を見てみましょう。 入力 12345 出力 12354 4桁目と5桁目を入れ替えました。1回の入れ替えでより高い数字が得られました。 アルゴリズム 数字の桁が降順の場合、数字を形成することはできません。 最後の桁よりも小さい数字の右側から桁のインデックスを見つけます。 前の桁より大きく、すべての桁より小さい桁のインデックスを見つけます。 2桁を入れ替えて、新しい番号を返します。 新しい番号を返します。 実装 以下は、C+
-
C++で同じ数のセットビットを持つ次に大きい数
数値nが与えられているので、バイナリ表現のnと同じセットビット数でnより大きい数値を見つける必要があります。 2進表現の数字1はセットビットと呼ばれます。 例を見てみましょう。 入力 124 出力 143 アルゴリズム 番号を初期化しますn。 設定されたビット数のカウントを取得する関数を記述します。 n+1で反復変数を初期化します。 無限ループを記述します。 nのセットビット数と等しい数のセットビット数を確認します。 見つけたら番号を返します。 番号を増やします。 実装 以下は、C++での上記のアルゴリズムの実装です #inclu
-
C++のn-aryツリーの次の大きな要素
n-aryツリーは、ノードごとにn個の子を持つツリーです。番号nが与えられ、n-aryツリーから次に大きい要素を見つける必要があります。 n-aryツリーをトラバースし、結果を維持することで解決策を見つけることができます。 アルゴリズム n-aryツリーを作成します。 結果を初期化します。 次に大きな要素を取得する関数を記述します。 現在のノードがnullの場合に戻ります。 現在のノードデータが予想される要素よりも大きいかどうかを確認してください。 「はい」の場合、結果が空であるか、結果が現在のノードデータよりも大きいかどうかを確認します。 上記の条件が満たされている場合は、結果を更新しま
-
C++の次の小さな要素
次に小さい要素は、その次の最初の小さい要素である要素です。例を見てみましょう。 arr =[1、2、3、5、4] 5の次に小さい要素は4であり、要素1、2、3の次に小さい要素は-1です。これは、それらの後に小さい要素がないためです。 アルゴリズム 乱数で配列を初期化します スタックを初期化します。 スタックに最初の要素を追加します。 配列の要素を繰り返し処理します。 スタックが空の場合は、現在の要素をスタックに追加します。 現在の要素はスタックの一番上の要素よりも小さいですが。 一番上の要素を、次に小さい要素を現在の要素として印刷します。
-
C++で次に小さいプライムパリンドローム
数Nが与えられます。Nより大きい素数回文を見つける必要があります。例を見てみましょう。 入力 N = 10 出力 11 アルゴリズム 番号Nを初期化します。 指定された数が素数であるかどうかをチェックする関数を記述します。 指定された数が回文であるかどうかを確認する関数を記述します。 N + 1から繰り返すループを作成します 次の回文素数が見つかるまで。 数が素数と回文素数であるかどうかを確認します。 数が素数で回文素数の場合。 番号を返します。 実装 以下は、C++での上記のアルゴリズムの実装です #include<bits/stdc++.h
-
C++の配列で最も頻繁に使用される要素
配列が与えられ、そこから最も頻繁な要素を見つける必要があります。例を見てみましょう。 入力 arr = [1, 2, 3, 3, 2, 2, 1, 1, 2, 3, 4] 出力 2 上記の配列では、2が4回発生します。これは、配列内の他のどの配列よりも頻繁に発生します。 アルゴリズム-1 アレイを初期化します。 マップを初期化して、各要素の頻度を保存します。 各要素の頻度を数え、マップに保存します。 マップを繰り返し処理して、最も頻度の高い要素を見つけます。 要素を返します。 アルゴリズム-2 アレイを初期化します。 指定された配列を並べ替えます。 最大
-
C++でのモツキン数
モツキン数系列は1、1、4、9などで始まります。シーケンスで一般化されたn番目の項を取得できます。モツキン数列は次のとおりです。 a 0 =1 a 1 =1 a 2 =4 a 3 =9 a n =((2 * n + 1)/ n + 2)* M (n-1) +((3 * n-3)/ n + 2)* M (n-2) アルゴリズム 番号を初期化しますn。 n。まで繰り返します 前の2つの番号を更新します 最後の番号を返します。 例 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/s
-
C++ですべてのゼロを配列の最後に移動します
複数のゼロを含む配列を指定します。配列内のすべてのゼロを最後まで移動する必要があります。例を見てみましょう。 入力 arr = [4, 5, 0, 3, 2, 0, 0, 0, 5, 0, 1] 出力 4 5 3 2 5 1 0 0 0 0 0 アルゴリズム アレイを初期化します。 インデックスを0に初期化します。 指定された配列を繰り返し処理します。 現在の要素がゼロでない場合は、インデックスの値を現在の要素で更新します。 インデックスをインクリメントします。 上記のインデックスからnまで繰り返すループを作成します すべての要素を0に
-
C ++のランダムな整数の配列で、すべて0を開始に移動し、1を終了に移動します
このチュートリアルでは、すべての0を配列の前に移動し、1を配列の最後に移動するプログラムを作成します。 ランダムな整数とともに0と1の配列が与えられます。すべてのゼロを配列の開始に移動し、1を配列の最後に移動する必要があります。例を見てみましょう。 入力 arr = [4, 5, 1, 1, 0, 0, 2, 0, 3, 1, 0, 1] 出力 0 0 0 0 4 5 2 3 1 1 1 1 アルゴリズム アレイを初期化します。 インデックスを1に初期化します。 指定された配列を繰り返し処理します。 現在の要素がゼロでない場合は、インデックスの値を現在の要素
-
C++ですべてのゼロをリンクリストの先頭に移動します
ランダムな整数とゼロを持つリンクリストが与えられます。すべてのゼロをリンクリストの先頭に移動する必要があります。例を見てみましょう。 入力 3 -> 0 -> 1-> 0 -> 0 -> 1 -> 0 -> 0 -> 3 -> NULL 出力 0->0->0->0->0->3->1->1->3->NULL アルゴリズム リンクリストを初期化します。 リンクリストが空であるか、単一ノードである場合に戻ります。 2つのノードをそれぞれ2番目のノードと最初のノードで初期化して、現
-
C++で最初の要素を特定のリンクリストの最後に移動します
リンクリストを指定すると、最初の要素を最後に移動する必要があります。例を見てみましょう。 入力 1 -> 2 -> 3 -> 4 -> 5 -> NULL 出力 2 -> 3 -> 4 -> 5 -> 1 -> NULL アルゴリズム リンクリストを初期化します。 リンクリストが空であるか、単一ノードである場合に戻ります。 リンクリストの最後のノードを見つけます。 2番目のノードを新しいヘッドにします。 最初と最後のノードのリンクを更新します。 実装 以下は、C++での上記のアルゴリズムの実装で
-
最後の要素をC++の特定のリンクリストの前に移動します
リンクリストが与えられた場合、最後の要素を前に移動する必要があります。例を見てみましょう。 入力 1 -> 2 -> 3 -> 4 -> 5 -> NULL 出力 5 -> 1 -> 2 -> 3 -> 4 -> NULL アルゴリズム リンクリストを初期化します。 リンクリストが空であるか、単一ノードである場合に戻ります。 リンクリストの最後のノードと最後から2番目のノードを見つけます。 最後のノードを新しいヘッドにします。 最後から2番目のノードのリンクを更新します。 実装 以下は、C++での
-
C ++で%演算子を使用せずに3と5の倍数
%演算子を使用すると、ハードルなしで倍数を見つけることができます。しかし、問題は、%演算子を使用できないことを示しています。 ここでは、+演算子を使用します。前の倍数に3または5を加えることで、倍数を取得できます。例を見てみましょう。 入力 15 出力 1 2 3 - Multiple of 3 4 5 - Multiple of 5 6 - Multiple of 3 7 8 9 - Multiple 3 10 - Multiple of 5 11 12 - Multiple of 3 13 14 15 - Multiple of both 3 and 5 アルゴリズム 番号
-
C++での3または7の倍数
数nが与えられた場合、nまでの3または7の倍数の数を見つける必要があります。例を見てみましょう。 入力 100 出力 43 100までの3または7の合計43の倍数があります。 アルゴリズム 番号nを初期化します。 カウントを0に初期化します。 3から繰り返すループを作成します n。へ 現在の数が3で割り切れる場合は、カウントを増やします または7。 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/stdc++.h> using namespace std; int getMultiplesCoun