C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. gcd(p [i]、i)>1であるインデックスの数がC++で正確にKになるような順列を見つけます

    1であるインデックスの数(1 –ベースインデックス)となるように、[1からN]の範囲の整数の順列を見つける必要があります。したがって、N=4およびK=3の場合、出力は[1、2、3、4]になり、gcd(1、1)=1、gcd(2、2)=2、gcd(3、 3)=3、gcd(4、4)=4 1であるインデックスの数は、N – 1になります。1を除く2つの連続する要素を交換すると、そのようなインデックスの数は正確に2減少し、1と交換すると数が減少します。正確に1。 例 #include<iostream> using namespace std; void findPermutation(

  2. n!となるようなxの最大値を見つけます。 %(k ^ x)=0(C ++の場合)

    2つの整数nとkがあるとします。 n!のようなxの最大値を見つける必要があります。 mod(k ^ x)=0。したがって、n =5、k =2の場合、出力は3になります。Asn! =120、xの値が異なると、次のようになります- 120 mod 2 ^ 0 =0、120 mod 2 ^ 1 =0、120 mod 2 ^ 2 =0、120 mod 2 ^ 3 =0、120 mod 2 ^ 4 =8、120 mod 2 ^ 5 =24、120 mod 2 ^ 6 =56、120 mod 2 ^ 7=120。x=3の最大値として、結果は0であるため、出力は3です。 これを解決するには、次の手順に従

  3. C++で時針と分針の間の角度がシータで与えられる時間を見つけます

    シータまたは角度の値が1つあるとします。時針と分針で角度を作成するhh:mm形式で1回検索する必要があります。角度が90°であるとすると、結果は3:00になる可能性があります。 12時間あるので、時間は12の可能性があり、分は60の可能性があります。可能な限りすべての時間をループします。任意の時間の角度が指定されたシータと同じである場合は、その時間を印刷します。 例 #include<iostream> #include<cmath> using namespace std; float angleFromClockHand(int hour, int minute)

  4. C++の二分木で最大垂直和を見つける

    二分木があるとします。タスクは、垂直順序トラバーサルのすべてのノードの合計の最大値を出力することです。したがって、ツリーが以下のようになっている場合- 垂直方向の走査は-のようなものです 4 2 1 + 5 + 6 = 12 3 + 8 = 11 7 9 ここでの最大値は12です。アプローチは単純です。垂直順序トラバーサルを実行してから、合計を見つけて最大値を確認します。 例 #include<iostream> #include<map> #include<vector> #include<queue> using namespace

  5. C++でソートされた順序で1<=n<=kであるnビットが設定されたkビット数のすべての組み合わせを検索します

    数kがあるとします。 1 <=n<=kであるn個のセットビットを持つkビット数のすべての可能な組み合わせを見つけます。結果として、最初に1セットのビットを持つすべての数値を出力し、次に2ビットが設定された数値を、すべてのビットが設定される数まで出力します。 2つの数値のセットビット数が同じである場合は、小さい方の数値が最初になります。したがって、k =3の場合、数値は[001、010、100、011、101、110、111]になります。 ここでは、動的計画法を使用して、1 <=n<=kであるn個のセットビットを持つkビット数のすべての可能な組み合わせを見つけます。この問題は、2つの部分に分け

  6. C++で与えられた座標のセットを持つ長方形の最小領域を見つけます

    XY平面にいくつかの点の配列があるとします。これらの点から形成できる長方形の最小面積を見つける必要があります。長方形の辺は、X軸とY軸に平行である必要があります。長方形を形成できない場合は、0を返します。したがって、点の配列が[(1、1)、(1、3)、(3、1)、(3、3)、(2、2)]のような場合。出力は4になります。長方形は点(1、1)、(1、3)、(3、1)、および(3、3)を使用して形成できるため。 これを解決するには、x座標でポイントを指定し、直線の垂直線上のポイントがグループ化されるようにします。次に、(x、y1)や(x、y2)のようなグループ内のポイントの各ペアについて、形成さ

  7. C++ですべての本を購入するための最小コストを見つける

    n個の要素の配列があるとします。これらはそれらの評価です。次の条件で、すべての本を購入するための最小コストを見つけます- 各本の費用は少なくとも1ドルになります 評価が隣接する本よりも高い場合、本は隣接する(左または右)よりもコストが高くなります。 したがって、たとえば、評価配列が[1、3、4、3、7、1]の場合、出力は10、As 1 + 2 + 3 + 1 + 2 + 1 =10 これを解決するには、LtoRとRtoLという2つの配列を作成し、それらを1で埋める必要があります。次に、次の手順に従います- 左から右にトラバースしてからLtoRを入力し、指定されたアレイの以前の評価を

  8. C++で少なくとも2つの大きな要素を持つ配列内のすべての要素を検索します

    n個の数の配列があるとします。少なくとも2つの大きな要素を持つ配列内のすべての要素を見つける必要があります。配列がA=[2、8、7、1、5]のような場合、結果は[2、1、5]になります。 これを解決するために、2番目の最大要素を見つけてから、2番目の最大値以下のすべての要素を出力します。 例 #include<iostream> using namespace std; void searchElements(int arr[], int n) {    int first_max = INT_MIN, second_max = INT_MIN;  

  9. C++で最長の共通プレフィックスの最小シフトを見つける

    2つのストリングAとBがあるとします。AとBの長さは同じです。 1回のシフトで、文字列Bを1要素回転させることができます。 AとBから最大長の共通プレフィックスを取得するには、必要な最小シフトを見つける必要があります。したがって、A =「コンピュータープログラミング」、B =「プログラミング言語」の場合、最小シフトは8で、プレフィックスは「プログラミング」です。 Bの最後に文字列Bを追加すると、B =B + Bとなるため、各シフトのプレフィックスを個別に検索する必要はありません。したがって、Bに存在するAの最長のプレフィックスを見つける必要があり、Bのプレフィックスの開始位置は、必要なシフト

  10. C++で1からNまでの概素数の数を見つける

    数Nがあるとします。1からNの範囲でほぼ素数を見つける必要があります。正確に2つの異なる因子がある場合、その数は概素数と呼ばれます。数には任意の数の非素因数を含めることができますが、2つの素因数である必要があります。したがって、Nが2の場合、出力は2になります。6と10の2つの数値があります。 ここでは、エラトステネスのふるいアプローチを使用します。より良いアイデアを得るために、次の実装を確認してください。 例 #include<iostream> #define N 100005 using namespace std; bool prime[N]; void SieveOfE

  11. 3つの連続する要素ごとに1つがC++で取得されるような最小の合計を見つけます

    n個の要素の配列があるとします。タスクは、配列から要素の最小合計を見つけることです。その配列内の3つの連続する要素ごとに少なくとも1つの要素1つの要素が選択されるようにします。したがって、配列が[1、2、3、6、7、1]のような場合。出力は4です。したがって、3と1を選択すると、(3 + 1 =4)になります。したがって、[1、2、3]、[2、3、6]、[3、6、7]、[6、7、1]のような連続する要素のサブ配列がいくつかあり、すべてのサブ配列から1つの要素を選択しました。 sum(i)が可能な最小の合計を返すことを考慮してください。ここで、arr [i]は解の一部であり、最後に選択された

  12. 要素がC++の範囲に制限されていない場合に、特定の配列で重複を検索します

    N個の整数の配列があるとします。ここでは、指定された配列の複製を出力します。そのような重複が存在しない場合は、-1を返します。したがって、配列が[12、15、12、3、6、12、3、48、56、8、48]のような場合、重複は次のようになります:[12、3、48] ここでは、C++で順序付けされていないマップを使用します。したがって、最初に1つの要素を取得するときに、それがマップに存在するかどうかを確認します。存在する場合は、それを複製として印刷します。それ以外の場合は、マップに追加します。 例 #include<iostream> #include<unordered_m

  13. C ++で配列積が大きくなるように、すべての配列要素を割り当てるための最小値を見つけます

    n個の要素の配列があるとします。指定された配列のすべての要素を、arr [i]=xとなるような最小値xに更新します。新しい配列のすべての要素の積が、最初の配列のすべての要素の積よりも厳密に大きくなるようにします。ここで、i <=arr [i] <=10 ^ 10、および1 <=n 4 * 2 * 1 * 10 * 6 n個の要素の積がPであることがわかっているので、Pのn番目のルートを見つける必要がある場合、積のn番目のルートを見つけるには、配列のn個の要素の対数の合計からnを除算し、次に真数の上限を求めます。結果になります。 res =ceil(antilog(log(x)/ 10)

  14. C ++のO(1)空間で要素0からN-1の定数配列で重複を検索します

    0からn-1までの数字のリストがあるとします。数は可能な限り何度でも繰り返すことができます。余分なスペースをとらずに繰り返し番号を見つける必要があります。 n =7の値で、リストが[5、2、3、5、1、6、2、3、4、5]のような場合。答えは5、2、3になります。 これを解決するには、次の手順に従う必要があります- リスト内の各要素eについて、次の手順を実行します- sign:=A[eの絶対値] 符号が正の場合は負にします それ以外の場合は繰り返しです。 例 #include<iostream> #include<cmath> using namespace

  15. C++でシャッフルされたコピーである別の配列で欠落している番号を見つけます

    2つの配列AとBがあり、配列Aにn個の要素があるとします。 2番目の配列BにはAのすべての要素が含まれていますが、それらはシャッフルされ、1つの要素が削除されています。不足している要素を見つける必要があります。したがって、A =[4、8、1、3、7]、およびB =[7、4、3、1]の場合、出力は8になります。 これは、XORトリックを使用して解決できます。各要素の組み合わせの出現は2回、1つはAで、もう1つはBで発生します。ただし、1つの要素はAで1回しか出現しません。xXORx =0であることがわかっているので、両方の要素でXORを実行すると配列。結果には番号がありません。 例 #incl

  16. 任意の2つの要素の差があるm要素のセットを検索するC++ではkで割り切れる

    N個の正の整数と別の変数Kを持つ配列があるとします。任意の2つの要素間の差がkに等しくなるように、正確にm個の要素を見つける必要があります。したがって、配列がA =[4、7、10、6、9]、k=3およびm=3の場合、出力は「yes」になります。 4、7、10のような3つの要素を見つけることができるので。 これを解決するには、要素をkで割ったときの余りを追跡する必要があります。ここで、サイズkの多次元配列rem [] []を作成します。そのインデックスは余りを示しており、要素はkで割ったときに対応する余りに従って要素になります。ここで、残りのセットをトラバースすることにより、必要なサイズm(存

  17. 2D平面の点からC++の線までの垂線の足を見つける

    2D平面と直線の方程式に点Pがあるとすると、タスクはPから直線への垂線の足を見つけることです。 直線の方程式はax+by + c =0です。Pを通り、直線に垂直な直線の方程式。 PとQを通る直線の方程式はay– bx + d =0になります。また、P(x1、y1)、Q(x2、y2)なので、方程式にPの座標を置きます。 ay 1-bx 1 + d =0、つまりd =bx1-ay 1 また、Qは与えられた線とPとQを通る線の交点であるため、これら2つの方程式の解を見つけます。 ax + by + c =0、∧ay-bx+(bx1-ay 1)=0 a、b、c、dはすべて既知であ

  18. C++プログラミングでn回の反復後に取得されたバイナリ文字列でi番目のインデックス文字を検索します

    バイナリ文字列ビンがあるとします。次に、それにn回の反復を適用し、各反復で0が01になり、1が10になります。その後、n回目の反復後の文字列のi番目のインデックス文字。したがって、バイナリ文字列が101、n =2、i =3の場合、最初の反復後は100110になり、次の反復では100101101001になるため、i番目のインデックスは1を保持します。 これを解決するには、次の手順に従う必要があります- ループをn回実行し、各反復で文字列に対して別のループを実行します バイナリ文字列の各文字を変換します。0の場合は01を格納し、1の場合は10を別の一時文字列に格納します。 内部ループの完了後、

  19. n XOR n+1がC++で指定されたkと等しくなるような最小数nを見つけます

    正の数kがあるとします。 nとn+1のXORがkと同じになるように、正の数nを見つける必要があります。したがって、k =7(111)の場合、出力は3になります。3(011)、3 + 1 =4(100)として、011 XOR 100 =111(7) 考えられるケースは2つあります。 nが偶数であると考えてください。 n=0の最後のビット。次にn+1=1の最後のビット。残りのビットは同じです。したがって、nが奇数の場合、XORは1になり、最後のビットは1になり、n + 1ビットの最後のビットは0になります。ただし、この場合、キャリーによって異なるビットが増えます。キャリーは、最初の0ビットを取得

  20. C++の式で指定された開始ブラケットの終了ブラケットのインデックスを検索します

    角かっこ付きの式があるとします。 1つの開始ブラケットのインデックスが指定されている場合、その終了ブラケットを見つける必要があります。したがって、式が次のようになり、(25 * 6 +(88-32 +(50/10)+20))で、開き角かっこのインデックスが6の場合、閉じ角かっこは23の位置になります。 ここでは、スタックデータ構造を使用してこの問題を解決します。指定されたインデックスから式をトラバースし、閉じ角かっこが見つかったら開き角かっこを押し始め、スタックが空のときにスタックから要素をポップして、インデックスを返します。 例 #include<iostream> #incl

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:100/300  20-コンピューター/Page Goto:1 94 95 96 97 98 99 100 101 102 103 104 105 106