C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++で各辺の中点を指定して三角形の座標を検索します

    三角形の辺の中点である3つの座標があるとします。三角形の座標を見つける必要があります。したがって、入力が(5、3)、(4、4)、(5、5)の場合、出力は(4、2)、(4、6)、(6、4)になります。 これを解決するには、X座標とY座標を別々に解決する必要があります。頂点のX座標の場合、それらをx1、x2、x3とします。その場合、中間点のX座標は(x1 + x2)/ 2、(x2 + x3)/ 2、(x3 + x1)/2になります。これらの3つの式の合計は、X座標の合計に等しいことがわかります。これで、3つの変数の合計と、それらのすべてのペアの合計に対する3つの式ができました。方程式を解いて座標

  2. リーフノードがC++で接続されている特別な二分木の高さを見つけます

    特別な二分木があり、そのリーフノードが接続されて循環二重リンクリストを形成しているとします。その高さを見つけなければなりません。したがって、左端のリーフの左ポインタは、循環二重リンクリストの前のポインタとして機能し、その右ポインタは、リンクリストの次のポインタとして機能します。 この場合、高さ検索戦略は通常の二分探索木に似ています。ノードの左右のサブツリーの高さを再帰的に計算し、ノードに高さを割り当てるのは、2つの子の最大値+1です。ただし、ここでは、葉は循環二重リンクリストの要素です。したがって、ノードがリーフノードになるために、ノードの左の右がノードを指しているかどうか、およびその右の左

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

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

  4. C ++の価数を使用して、3つの原子から分子を形成できるかどうかを調べます。

    私たちが知っているように、バランス数は、原子が他の原子とどのように多くの結合を形成しなければならないかを定義する数です。 3つの原子の原子価があります。彼らが1つの分子を作ることができるかどうかをチェックする必要があります。原子は互いに多重結合を形成することができます。したがって、バランス番号が2、4、2の場合、出力はYESになります。絆は以下のようになっているので- 1 – 2、1 – 2、2 – 3、2 –3。 バランス番号がa、b、cであると仮定します。 cが最大であると考えてください。次に、分子を形成できない2つのケースがあります- a + b+cは奇数です。すべての結合により

  5. C++で復号化された文字列のk番目の文字を検索します

    エンコードされた文字列が1つあるとします。ここで、部分文字列の繰り返しは、部分文字列の後に部分文字列の数が続くものとして表されます。したがって、文字列がab2cd2のような場合は、ababcdcdを示し、k =4の場合は、k番目の文字(ここではb)を返します。 これを解決するために、最初に空の復号化された文字列を取得し、次にサブ文字列とその頻度を1つずつ読み取ることによって文字列を解凍します。次に、復号化された文字列に現在のサブ文字列をその頻度で追加します。文字列がなくなるまでこのプロセスを繰り返し、復号化された文字列からK番目の文字を出力します。 例 #include<iostrea

  6. C ++で追加のスタックを使用せずに、O(1)でスタックの最大値を見つけます

    スタックに最大の要素を格納できるスタックを作成するとします。そして、O(1)時間でそれを得ることができます。制約は、追加のスペースを使用してはならないため、O(1)の追加スペースです。 最大値を格納するユーザー定義スタックを1つ作成できます。ポップやピークなど、1つの操作が実行されると、最大値が返されます。ピーク操作の場合は、スタックトップの最大値と最大要素を返します。ポップ操作の場合は、トップ要素が大きい場合はそれを出力し、maxを2 * max –top_elementとして更新します。それ以外の場合はtop_elementを返します。プッシュ操作の場合、最大要素をx(挿入するデータ)、

  7. C++で指定された金額に合計される紙幣と値の最小数を見つけます

    そのような金額があり、指定された金額になる、さまざまな金種のノートの最小数を見つける必要があるとします。最高額の紙幣から始めて、与えられた金額で可能な限り多くの紙幣を見つけるようにしてください。ここでは、{2000、500、200、100、50、20、10、5、2、1}の量が無限であると仮定しています。したがって、金額が800の場合、ノートは500、200、100になります。 ここでは、貪欲なアプローチを使用してこの問題を解決します。 例 #include<iostream> using namespace std; void countNotes(int amount) { &

  8. C++の特別な家族で職業を探す

    医師やエンジニアの特別な家族がいると考えてください。いくつかのルールがあります、これらは以下のようなものです- 誰にも2人の子供がいます エンジニアの最初の子供はエンジニア、2番目の子供は医者です 医師の最​​初の子供は医師であり、2番目の子供はエンジニアです すべての世代の医師とエンジニアはエンジニアから始まります したがって、レベル4と位置2の結果を取得したい場合、結果はDoctorになります。 アイデアは単純です。人の職業は次の2つに依存します。 親の職業。 ノードの位置:ノードの位置が奇数の場合、その職業はその親と同じです。そうでなければ、職業はその親とは異なります。 親

  9. C++で2つのソートされた配列の相対的な補数を検索します

    2つのソートされた配列arr1とarr2があり、サイズはそれぞれmとnであるとします。 2つの配列の相対的な補数を見つける必要があります。これは、arr1には存在するが、arr2には存在しないすべての要素を見つける必要があることを意味します。したがって、配列がA =[3、6、10、12、15]、B =[1、3、5、10、16]のような場合、結果は[6、12、15]になります。 これを解決するために、set_difference関数を使用できます。問題は基本的にセット差操作なので。 例 #include<iostream> #include<algorithm> #in

  10. C++で与えられた完全な二分木のすべてのノードの合計を見つけます

    完全な二分木のレベル数を表す正の整数Lがあるとします。この完全な二分木のリーフノードには、1からnまでの番号が付けられています。ここで、nはリーフノードの数です。親ノードは子の合計です。私たちの仕事は、この完璧な二分木のすべてのノードの合計を出力するプログラムを書くことです。したがって、ツリーが以下のようになっている場合- したがって、合計は30です。 よく見ると、すべてのノードの合計を見つける必要があります。リーフノードは1からnまでの値を保持しているため、式n(n + 1)/2を使用してリーフノードの合計を取得できます。これは完全な二分木であるため、各レベルの合計は同じになります

  11. C++で楕円に内接する最大の円の領域を見つけます

    長軸と短軸の長さが2aと2bの楕円があるとします。そこに内接できる最大の円の領域を見つける必要があります。したがって、a=5およびb=3の場合、面積は28.2734になります このことから、楕円に内接する最大円の半径が短軸「b」になることがわかります。したがって、面積はA=π*b * bになります。 例 #include<iostream> using namespace std; double inscribedCircleArea(double b) {    double area = 3.1415 * b * b;    re

  12. C++で最大の連続する偶数の数を見つけます

    n個の要素を持つ配列Aがあるとします。与えられた配列内の連続する偶数の最大数を見つける必要があります。したがって、配列がA =[1、2、3、4、6、8、7]のような場合、カウントは3になります。 これは簡単に解決できます。 2つのカウント変数が必要です。1つはmax_currentで、もう1つはmax_till_nowです。偶数が見つかった場合は、max_currentを増やしてから、max_till_nowと比較します。奇数の要素が見つかるたびに、max_countを0にリセットします。 例 #include<iostream> using namespace std; int

  13. C++で各放射ステーションの最終的な放射を見つけます

    直線上にN個の駅があるとします。それらのそれぞれは、放射電力の同じ非負の電力を持っています。すべてのステーションは、次の方法で隣接するステーションの放射電力を増やすことができます。 放射電力Rのステーションiが、(i – 1)番目のステーションの放射電力をR-1だけ増加させ、(i-2)番目のステーションの放射電力をR-2だけ増加させ、(i + 1)番目のステーションの放射電力を増加させるとします。 R-1による放射電力、(i + 2)R-2によるステーションの放射電力。後で。したがって、たとえば、配列がArr =[1、2、3]の場合、出力は3、4、4になります。新しい放射は[1 +(2 –

  14. C++のすべてのガソリンポンプを訪問する最初の循環ツアーを見つけます

    円があり、円上にn個のガソリンポンプがあるとします。 -のような2つのデータセットがあります すべてのガソリンポンプが持つガソリンの量 あるガソリンポンプから別のガソリンポンプまでの距離 トラックが円を完成できる最初のポイントを計算します。 1リットルのガソリンの場合、トラックは1単位の距離を移動できます。ガソリンポンプが4つあり、ガソリンの量があり、次のガソリンポンプからの距離が[(4、6)、(6、5)、(7、3)、(4、5)]のようになっているとします。トラックが循環ツアーを行うことができる最初のポイントは、2番目のガソリンポンプです。出力はstart=1(2番目のパトロールポンプの

  15. C ++で最初に増加し、次に減少する配列内の最大要素を見つけます

    最初に増加してから減少する配列が1つあるとします。配列内の最大値を見つける必要があります。したがって、配列要素がA =[8、10、20、80、100、250、450、100、3、2、1]のような場合、出力は500になります。 これを解決するために二分探索を使用することができます。 3つの条件があります- midが隣接する両方の要素よりも大きい場合、midが最大になります midが次の要素よりも大きいが、前の要素よりも小さい場合、maxはmidの左側にあります。 mid要素が次の要素よりも小さいが、前の要素よりも大きい場合、maxはmidの右側にあります。 例 #include<

  16. C++で行列の平均ベクトルを見つける

    次数MxNの行列があるとすると、与えられた行列の平均ベクトルを見つける必要があります。したがって、行列が-のような場合 1 2 3 4 5 6 7 8 9 その場合、平均ベクトルは[4、5、6]です。各列の平均は(1 + 4 + 7)/ 3 =4、(2 + 5 + 8)/ 3 =5、および(3 + 6 + 9 )/ 3 =6 この例から、各列の平均を計算すると平均ベクトルになることが簡単にわかります。 例 #include<iostream> #define M 3 #define N 3 using namespace

  17. 配列がC++でバランスが取れるように、追加する最小値を見つけます

    n個の要素を持つ配列Aがあるとします。そして、nは偶数です。配列のバランスを取るために必要な値を見つける必要があります。配列のサイズが均一であるため、2つの半分を作成できます。左半分の合計と右半分の合計のバランスをとる必要があります。したがって、配列がA =[1、2、3、2、5、3]の場合、左半分の合計は6で、右半分の合計は10です。したがって、配列のバランスをとるには4が必要です。 タスクは単純です。前半と後半の合計を見つけてから、絶対差を見つけて戻ります。 例 #include<iostream> #include<cmath> using namespace s

  18. Xとの絶対差がC++で最大値を与えるノードを見つけます

    ツリーがあり、すべてのノードの重みと整数xがあるとします。 | weight [i]--x|となるようなノードiを見つける必要があります。最小です。グラフが以下のようで、x =15 出力は3になります。ノードごとに次のようになります ノード1、| 5 – 15 | =10 ノード2、| 10 – 15 | =5 ノード3、| 11 – 15 | =4 ノード4、| 8 – 15 | =7 ノード5、| 6 – 15 | =9 アイデアは単純です。ツリーでDFSを実行し、ノードの追跡を行います。ノードのxとの重み付き絶対差が最小値を示します 例 #include

  19. C++の二分探索木で最小値のノードを見つけます

    1つの二分探索木があるとします。二分探索木で最小要素を見つける必要があります。したがって、BSTが以下のような場合- 最小要素は1になります。 左のサブツリーは常に小さい要素を保持していることがわかっています。したがって、左がnullになるまで左のサブツリーを何度もトラバースすると、最小の要素を見つけることができます。 例 #include<iostream> using namespace std; class node{    public:       node *left;      

  20. C++での最大積4倍の数を見つける

    n個の要素を持つ1つの整数配列があるとします。配列内の4倍の最大積を見つける必要があります。したがって、配列が[3、5、20、6、10]のような場合、最終積は6000であり、4倍の要素は10、5、6、20です。 これを解決するには、次の手順に従います- 配列を昇順で並べ替えます xが最後の4つの要素の積、yが最初の4つの要素の積、zが最初の2つと次の2つの要素の積であると仮定します x、y、zの最大値を返します。 例 #include<iostream> #include<algorithm> using namespace std; int maxQuadP

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