C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. 円が別の円の内側にあるかどうか、C++ではないかどうかを確認します

    2つの円(中心点と半径の値)があるとすると、1つの円が別の円の内側に収まっているかどうかを確認する必要があります。考えられる原因は3つあります。 小さい方の円は、互いに接触することなく、大きい方の円の内側に完全にあります。この場合、中心間の距離と小さい方の半径の合計は、大きい方の半径よりも小さくなります。したがって、小さい方が大きい方の内側になります。 2番目のケースは、小さい円が大きい円の内側にあるが、大きい円の円周にも接している場合です。 3番目のケースは、小さい円の一部が大きい円の内側にあることです。 これを解決するには、2つの中心間の距離を見つけ、距離と半径の値

  2. 特定の配列がC++でペアワイズソートされているかどうかを確認します

    n個の要素を持つ配列Aがあります。配列がペアごとにソートされているかどうかを確認する必要があります。配列が{8、10、18、20、5、15}のようなものであるとします。これは、(8、10)、(18、20)、(5、15)がソートされるようにペアごとにソートされます。配列に奇数の要素がある場合、最後の要素は無視されます。 アプローチは単純すぎます。Iを0からn-1にすることで、i番目の要素がi + 1番目の要素よりも小さいかどうかを確認し、そうでない場合はfalseを返し、そうでない場合はIを2増やします。 例 #include <iostream> #include <cma

  3. 特定の行列がC++でスパースであるかどうかを確認します

    ここでは、行列がスパースであるかどうかを確認する方法を説明します。スパース行列は、ほとんどの要素が0である行列です。スパース行列の定義は、要素の2/3が0の場合、その行列はスパース行列として示されます。これがスパース行列の例です。 これを確認するために、マトリックス内の0の数をカウントし、そのカウントが要素全体の2/3より大きい場合、これはスパースです。 例 #include <iostream> #include <cmath> #define MAX 5 using namespace std; bool isSparseMatrix(int arr[][M

  4. 指定された番号がC++でスパースであるかどうかを確認します

    このセクションでは、数値がスパースであるかどうかを確認する方法を説明します。数値の2進表現に、2つまたは2つを超える連続した1がない場合、その数値はスパースであると言われます。数字が72のようなものだとします。これは01001000です。ここでは2つ以上の連続した1はありません。 数値がスパースであるかどうかを確認するには、数値をnとし、その数値を1ビット右にシフトして、ビット単位のANDを実行します。結果が0の場合、それはスパース数です。それ以外の場合はそうではありません。 例 #include <iostream> using namespace std; bool isSp

  5. 特定の文字列がC++の回文の回転であるかどうかを確認します

    ここでは、特定の回転後の1つのストリングが回文であることがわかります。回文は、両方向で同じ文字列です。それがAAAADのようなものである場合、弦の回転は回文です。これは直接の回文ではありませんが、そのローテーションAADAAは回文です。 文字列が回文で回転しているかどうかを確認するには、最初にこれが回文であるかどうかを確認し、その後、1文字ずつ回転させてから、もう一度確認します。この確認はn回実行されます。ここでnは文字数です。 例 #include <iostream> #include <string> #include <algorithm> usi

  6. 数値がC++で2つの豊富な数値の合計として表現できるかどうかを確認します

    番号があるとします。これを2つの過剰数の合計として表す必要があります。はいの場合は数値を出力し、そうでない場合は-1を出力します。数は過剰数と呼ばれ、その数のすべての適切な除数の合計であり、sum(n)は数の値よりも大きいことで示されます。 これを解決するために、すべての過剰数をセットに格納し、指定された数nに対して、i =1からnのループを実行し、nと(n – i)が過剰かどうかを確認します。 例 #include <iostream> #include <set> #define N 100005 using namespace std; set<int&g

  7. 数値に代替パターンのビットがあるかどうかを確認します-C++で1を設定します

    整数nがあるとしましょう。問題は、この整数が2進数に相当する代替パターンを持っているかどうかを確認することです。代替パターンは101010…を意味します。 アプローチは次のようなものです。同等の2進数を使用して各桁をチェックし、2つ連続している場合は偽を返し、そうでない場合は真を返します。 例 #include <iostream> using namespace std; bool hasAlternatePattern(unsigned int n) {    int previous = n % 2;    n = n/2; &nbs

  8. 数値に代替パターンのビットがあるかどうかを確認します-C++でのSet-2O(1)アプローチ

    整数nがあるとしましょう。問題は、この整数が2進数に相当する代替パターンを持っているかどうかを確認することです。代替パターンは101010…を意味します。 1)を計算します。ここで、numのすべてのビットが1の場合、numには交互のパターンがあります。 例 #include <iostream> #include <algorithm> using namespace std; bool isAllBitSet(int n){    if (((n + 1) & n) == 0)       return tr

  9. 番号がC++でクリシュナムルシー番号であるかどうかを確認します

    ここでは、クリシュナムルティ番号かどうかを確認する方法を説明します。各桁の階乗の合計が数値と同じである場合、数値はクリシュナムルティ数です。たとえば、数値が145の場合、sum =1! + 4! + 5! =1 + 24 + 120 =145。つまり、これはクリシュナムルティの数です。 論理は単純で、各数の階乗を見つけて合計を見つける必要があります。それが与えられた数と同じである場合、その数はクリシュナムルティ数です。より良いアイデアを得るためにコードを見てみましょう。 例 #include <iostream> #include <cmath>> using

  10. C++で数値が23で割り切れるかどうかを確認します

    ここでは、数値が23で割り切れるかどうかをチェックできる1つのプログラムを示します。番号1191216が与えられたと仮定します。これは23で割り切れます。 除算規則を確認するには、この規則に従う必要があります- 番号/切り捨てられた番号の最後の桁を毎回抽出します 切り捨てられた数値に7*(前に計算された数値の最後の桁)を追加します 必要な限り、これらの手順を繰り返します。 17043, so 1704 + 7*3 = 1725 1725, so 172 + 7 * 5 = 207 207, this is 9 * 23, so 17043 is divisible by

  11. C++で数値が41で割り切れるかどうかを確認します

    ここでは、数値が41で割り切れるかどうかをチェックできる1つのプログラムを示します。番号104413920565933が与えられたと仮定します。これは41で割り切れます。 除算規則を確認するには、この規則に従う必要があります- 番号/切り捨てられた番号の最後の桁を毎回抽出します 切り捨てられた数値から4*(前に計算された数値の最後の桁)を減算します 必要な限り、これらの手順を繰り返します。 30873, so 3087 - 4*3 = 3075 3075, so 307 - 4 * 5 = 287 287, so 28 – 4 * 7 = 0 So, 308

  12. 数値がC++でのみ1、14、または144の連結によって形成されているかどうかを確認します

    ここでは、文字列または数値が1、14、または144のみの連結であるかどうかを判断できる1つの問題があります。文字列が「111411441」であるとします。これは有効ですが、「144414」は無効です。 タスクは簡単です。最後から1桁、2桁、3桁の数字を取得し、これら3つ(1、14、144)のいずれかと一致するかどうかを確認する必要があります。一致するものが1つある場合は、除算します。番号を付けて、番号全体がなくなるまでこのプロセスを繰り返します。 例 #include <iostream> #include <cmath> using namespace std; b

  13. C++でKの倍数の間に発生する配列の要素を並べ替えます

    配列Aと別の整数Kがあるとします。Kの任意の2つの倍数の間にある要素を並べ替える必要があります。Aが[2、13、3、1、21、7、8、13、12のようであるとします。 ]、およびK =2。出力は[2、1、3、7、13、21、8、13、12]になります。ここで、2の倍数は2、8、および12であり、2と8の間の要素は13、3、1、21、7であり、1、3、7、13、21、8から12の間の要素としてソートされます。はわずか13なので、すでに並べ替えられています。 配列をトラバースし、値Kの倍数を追跡する必要があります。次に、Kの2番目の倍数から始めて、現在と前のKの倍数の間ですべての要素を並べ替えま

  14. C++の別の文字列で定義されているアルファベット順に文字列の配列を並べ替えます

    文字列の配列があり、参照用に別の文字列があるとします。参照文字列を取得する必要があり、参照文字列内の文字の順序を使用して、文字列配列を並べ替えます。ここでは、配列内の文字列を検討しており、参照文字列は小文字です。 文字列配列が次のようになっているとします:[hello、 programming、 science、 computer、 india]、参照文字列は次のようになります: pigvxbskyhqzelutoacfjrndmw、出力文字列を並べ替えると[programming 」、「インド」、「科学」、「こんにちは」、「コンピューター」] タスクは簡単です。参照文字列をトラバースし

  15. C++のSTLでペアを使用して別の配列に従って配列を並べ替える

    2つの異なる配列があるとします。 C ++ STLペアクラスを使用して、一方の配列をもう一方の配列に基づいて並べ替える必要があります。 2つの配列がA1=[2、1、5、4、9、3、6、7、10、8]のようであり、別の配列がA2 =[A、B、C、D、E、F、Gのようであるとします。 、H、I、J]、出力は次のようになります:A1 =[1、2、3、4、5、6、7、8、9、10]、A2 =[B、A、F、D、C 、G、H、J、E、I] ここでは、C++STLのペアを使用しています。ペアは、A1から1つの要素、A2から別の要素を取得することによって形成されます。次に、並べ替え機能を使用します。考慮し

  16. C++の完全グラフから可能な最大のエッジの互いに素なスパニングツリー

    完全グラフがあるとします。 EdgeDisjointSpanningツリーの数を数える必要があります。 Edge Disjoint Spanningツリーは、セット内の2つのツリーに共通のエッジがないスパニングツリーです。 N(頂点の数)が4であるとすると、出力は2になります。4つの頂点を使用した完全グラフは次のようになります- 2つのエッジのばらばらなスパニングツリーは-のようなものです N個の頂点を持つ完全グラフからのエッジ非結合スパニングツリーの最大数は$[\frac {n} {2}] $になります。 例 #include <iostream> #includ

  17. C++で分割統治法を使用した最大合計サブアレイ

    正の値と負の値を持つデータのリストが1つあるとします。合計が最大である連続するサブ配列の合計を見つける必要があります。リストに{-2、-5、6、-2、-3、1、5、-6}が含まれているとすると、最大サブ配列の合計は7になります。これは{6、-2、-3の合計です。 、1、5} この問題は、分割統治法を使用して解決します。手順は次のようになります- 手順 − アレイを2つの部分に分割します 次の3つの最大値を見つけます 左側のサブアレイの最大サブアレイ合計 右サブアレイの最大サブアレイ合計 サブアレイが中点を横切るようなサブアレイの最大合計 例 #include <iostr

  18. C++でカウントソートを使用した中央値と最頻値

    サイズnの配列があるとすると、カウントソート手法を使用して中央値と最頻値を見つける必要があります。この手法は、配列要素が限られた範囲にある場合に役立ちます。要素が{1、1、1、2、7、1}であり、最頻値が1、中央値が1.5であるとします。中央値とは何か、最頻値とは何かを見てみましょう- 中央値は、並べ替えられた数値リストの中央値です モードは、リスト内で出現回数が最大の要素です 中央値と最頻値を取得するには、次の手順に従う必要があります- 入力配列のサイズがnであると想定します 前のカウントを次のインデックスに合計する前に、カウント配列を取得します 格納されている最大値のインデックスは

  19. C ++で1文字の出現をすべて削除した後、ASCII値の合計を最小化します

    文字列があるとします。特定の文字が出現するたびに削除した後、文字列に対する各文字のASCII値の合計を最小化する必要があります。文字列が「hello」のように指定されているとすると、ASCII文字の合計は(104 + 101 + 108 + 108 + 111)=532です。次に各文字の出現を確認します。 hは1回発生したため、コストは1 * 104 =104 eは1回発生したため、コストは1 * 101 =101 lは1回発生したため、コストは2 * 108 =216 oは1回発生したため、コストは1 * 111 =111 ここで、lは最大時間発生しているため、lの出現

  20. C++で2つの数値文字列を同一にするための最小コスト

    2つの数値文字列AとBがあるとします。AとBを同一にするための最小コストを見つける必要があります。実行できる操作は1つだけです。つまり、文字列から数字を削除できます。数値から数字を削除するためのコストは、数字の値と同じです。文字列A=“ 6789”、B =“ 7859”とすると、Aから6を削除し、Bから5を削除する必要があるため、コストは5 + 6=11になります。 これは最長共通部分列問題のバリエーションの1つです。 AとBからLCSの長さを見つける必要があります。この式を使用することで、最小のコストを得ることができます。 MinimumCost =CostA + CostB−2 ∗ l

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:80/300  20-コンピューター/Page Goto:1 74 75 76 77 78 79 80 81 82 83 84 85 86