-
数のすべてのペアがGCDKを持つように、N行の数を印刷します
GCD GCDは、0を除く2つ以上の整数の最大公約数の略です たとえば、48と180の最大公約数を見つけるには 48=2×2×2×2×3 180=2×2×3×3×5 最大公約数=2×2×3=12。 与えられた問題では、N行は指定されたGCDを持つ要素で印刷する必要があります Input : N=2 GCD=2 Ouput : 2-4-6-10 14-16-18-22 アルゴリズム START Step 1 -> take input n(e.g. 2) and k(e.g. 2) as int values and i Step 2-> Loop For i t
-
2つの数値のk番目の公約数を出力します
xとyの2つの数値が与えられた場合、出力にはk番目の公約数が含まれている必要があります。 Input: x=9 y=18 k=1 Output : k common factor = 2 Factors of 9 : 1, 3, 9 Factors of 18 : 1, 2, 3, 6, 9, 18 Greatest Common Factor : 9 アルゴリズム START Step 1 -: take input as x and y lets say 3 and 21 and k as 1 Step 2 -: declare start variables as int i,num,c
-
ニューマン-コンウェイシーケンスのn項を出力
Newman-Conwayシーケンスは、次の整数シーケンスを生成するために使用されます。 1 1 2 2 3 4 4 4 5 6 7 7 8 8 8 8 9 10 11 12 n個の数のニューマン-コンウェイシーケンスを生成するために使用される式は-です。 P(n) = P(P(n - 1)) + P(n - P(n - 1)) Where, p(1) =p(2) =1 アルゴリズム START Step 1 -> Input variable n(e.g. 20) Step 2 -> start variables as i, p[n+1], p[1]=1, p[2]=1 St
-
指定された配列からn個の最小要素を元の順序で出力します
たとえばk個の要素の配列が与えられた場合、プログラムはそれらの中から出現順にn個の最小要素を見つける必要があります。 Input : arr[] = {1, 2, 4, 3, 6, 7, 8}, k=3 Ouput : 1, 2, 3 Input k is 3 it means 3 shortest elements among the set needs to be displayed in original order like 1 than 2 and than 3 アルゴリズム START Step 1 -> start variables as int i, max, pos,
-
式(a + b)<=nの「a」の値を出力し、a+bはxで割り切れる
方程式で与えられるプログラムは、a + b <=nであり、xで割り切れる「a」の値を見つける必要があります。 アルゴリズム START Step 1 -> Declare start variables b=10, x=9, n=40 and flag=0, divisible Step 2 -> Loop For divisible = (b / x + 1 ) * x and divisible <= n and divisible += x IF divisible - b >= 1 Print
-
指定されたパターンを再帰的に印刷します
ここでは、与えられた問題に従って、再帰的アプローチを使用してパターンを表示する必要があります。 再帰関数 n回自分自身を呼び出すものです。プログラムには「n」個の再帰関数が存在する可能性があります。再帰関数を使用する際の問題は、その複雑さです。 アルゴリズム START Step 1 -> function int printpattern(int n) If n>0 Printpattern(n-1) Print * End IF End St
-
行列確率の質問?
ここでは、1つの行列確率問題が表示されます。 1つの長方形の行列があります。現在のセルから4方向に同じ確率で移動できます。これらの4つの方向は、左、右、上、下です。 Nが位置M[i、j]から移動した後の確率を計算する必要があります。 ここでは、DFSに関連することを行います。現在の部屋から4つの可能な部屋のそれぞれを再帰的にトラバースします。次に、1回少ない移動で確率を計算します。 4つの方向のそれぞれが等しい確率を持っているので、各方向は合計確率の0.25に寄与します。マトリックスの境界を越えると、0が返され、N移動が完了すると1が返されます。アイデアを得るためのアルゴリズムを見てみましょ
-
ネストされたループパズル?
このセクションでは、1つの興味深い問題があります。 2つのコードセグメントが表示されます。どちらも2つのネストされたループがあります。どちらがより速く実行されるかを特定する必要があります。 (コンパイラーがコードを最適化していないと想定します。) セグメント1 for(int i = 0; i < 10; i++){ for(int j = 0; j<100; j++){ //code } } セグメント2 for(int i = 0; i < 100; i++){ &
-
パンケーキの並べ替えの問題?
ここでは、Pancakesortという名前の別の並べ替えの問題が発生します。この問題は単純です。アレイが1つあります。これを並べ替える必要があります。ただし、使用できる操作はrev(arr、i)の1つだけです。これにより、arrの要素が0からi番目の位置に反転します。 このアイデアは、選択ソートのようなものです。 max要素を最後に繰り返し配置して、配列のサイズを縮小します。アイデアを得るためのアルゴリズムを見てみましょう。 アルゴリズム pancakeSort(arr、n) Begin size := n while size >
-
C / C ++ R値式のパズル?
ここでは、1つのパズルが表示されます。以下のようなプログラムがあるとしたら、何が出力されるのか、そしてその理由を教えなければなりませんか? 例 #include<iostream> using namespace std; int main() { int x = 0xab; ~x; cout << hex << x; } では、出力はどうなりますか? 〜xは補数演算を実行しています。それで、補完された結果を16進形式で表示しますか? さて、出力は次のようになります 出力 ab
-
複数のステップまたはジャンプが許可されている迷路のラット?
迷路のネズミの問題は、バックトラックのよく知られた問題の1つです。ここでは、ほとんど変化のない問題を確認します。 1つのNxN迷路Mが与えられたと仮定します。出発点は左上隅のM[0、0]で、目的地は右下隅のM [N – 1、N-1]です。 1匹のラットを出発点に置きます。私たちの目標は、ラットが目的地に到達するための始点から終点までの経路を見つけることです。ここでネズミはジャンプすることができます(バリエーション)。今、いくつかの制約があります ラットは右または下に移動できます。 セルに0が含まれる迷路は、セルがブロックされていることを示します。 ゼロ以外のセルは有効なパスを示しています。
-
k日後のアクティブおよび非アクティブセル?
3です。真の値または1の値はアクティブ状態を示し、0または偽の値は非アクティブを示します。別の数kも与えられます。 k日後にアクティブまたは非アクティブなセルを見つける必要があります。左右のセルが同じでない場合は、i番目のセルの日常の状態がアクティブになり、同じ場合は非アクティブになります。左端と右端のセルには、前後にセルがありません。したがって、左端と右端のセルは常に0です。 アイデアを得るために1つの例を見てみましょう。 1つの配列が{0、1、0、1、0、1、0、1}のようで、k =3の値であると仮定します。それでは、それが日ごとにどのように変化するかを見てみましょう。 1日後、配列
-
リンクリストとして表される番号に1を追加しますか?
ここでは、リンクリストに格納されている番号に1を追加する方法を説明します。リンクリストには、数字の各桁が格納されます。番号が512の場合、以下のように保存されます- 512 = (5)-->(1)-->(2)-->NULL リストをインクリメント関数に提供しています。 1を追加すると、別のリストが返されます。ここでは、C++STLリンクリストを使用しています。より良いアイデアを賭けるためのアルゴリズムを見てみましょう。 アルゴリズム incrementList(l1) Begin carry := 1 res := an
-
配列として表される数に1を追加します(再帰的アプローチ)?
このセクションでは、1つの興味深い問題があります。 1つの番号が与えられていると仮定します。この数を1増やす必要があります。これは非常に簡単な作業です。ただし、ここでは数値を配列として配置します。その番号の各桁は、配列の要素として配置されます。番号が512の場合、{5、1、2}として保存されます。また、再帰的アプローチを使用して数を増やす必要があります。明確なアイデアを得るためのアルゴリズムを見てみましょう。 アルゴリズム 増分(arr、n、インデックス) 最初のインデックスのデフォルト値は0です begin if index < n, then
-
与えられた制約で与えられた配列の要素を追加しますか?
ここで1つの問題が発生します。 2つの配列要素を追加し、それらを別の配列に格納します。ただし、いくつかの制約に従います。これらの制約は以下のようなものです- 追加は、両方の配列の0番目のインデックスから指定する必要があります 合計が1桁を超える場合は分割し、各桁を対応する場所に配置します 大きい方の入力配列の残りの桁は、出力配列に格納されます アイデアを得るためのアルゴリズムを見てみましょう。 アルゴリズム addArrayConstraints(arr1、arr2) Begin define empty vector out i :
-
配列内のすべての桁を使用して3つの数値で除算できるかどうかを確認するC/C ++プログラム?
このセクションでは、1つの配列にn個の数値が与えられているかどうかを確認します。これらの数値のすべての要素を使用して数値を作成するかどうかを確認する必要があります。その数値は、3で割り切れます。配列要素が{15、24、23、13}の場合、15242313のような整数を作成できます。3で割り切れます。 アルゴリズム checkDivThree(arr) Begin rem := 0 for each element e in arr, do rem := (rem + e) mod 3
-
数値の階乗で後続ゼロをカウントするC/C ++プログラム?
ここでは、任意の数の階乗の結果の末尾の0の数を計算する方法を説明します。したがって、n =5の場合、5! =120。末尾の0は1つだけです。20!の場合、20!として4つのゼロになります。 =2432902008176640000。 最も簡単なアプローチは、階乗を計算して0を数えることです。ただし、このアプローチは、nの値が大きい場合は失敗します。したがって、別のアプローチに従います。素因数が2と5の場合、後続のゼロがそこにあります。2と5を数えると、結果を得ることができます。そのために、このルールに従います。 末尾の0=factorial(n)の素因数の5の数 アルゴリズム
-
リンクリストで表される2つの数字を追加しますか?
ここでは、別々のリンクリストに保存されている2つの数値を追加する方法を説明します。リンクリストには、数字の各桁が格納されます。番号が512の場合、以下のように保存されます- 512 = (5)-->(1)-->(2)-->NULL このタイプのリストを2つ提供しています。タスクは、それらを追加し、合計を計算した後に結果を取得することです。ここでは、C++STLリンクリストを使用しています。より良いアイデアを賭けるためのアルゴリズムを見てみましょう。 アルゴリズム addListNumbers(l1、l2) Begin Adjust the l1
-
リスト内のすべての回文数?
ここでは、1つの簡単な問題が発生します。与えられたリストから、本質的に回文であるすべての数を見つける必要があります。アプローチは簡単です。リストから各番号を取得し、それが回文であるかどうかを確認して、番号を印刷します。 アルゴリズム getAllPalindrome(arr、n) Begin for each element e in arr, do if e is palindrome, then print e
-
両方の半分で合計が等しい長さnのすべての可能な2進数?
ここでは、各半分の合計が同じであるnビット(nはユーザーによって指定されます)のすべての可能な2進数が表示されます。たとえば、数が10001の場合、ここで10と01は合計が同じであるため同じであり、それらは異なる半分にあります。ここでは、そのタイプのすべての番号を生成します。 アルゴリズム genAllBinEqualSumHalf(n、left、right、diff) 左と右は最初は空で、diffは左と右の違いを保持しています Begin if n is 0, then if diff is 0, then