C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++のマトリックスで安全なセルを見つける

    行列mat[][]があるとします。キャラクターZとPがあります。Zはゾンビ、Pは植物です。そして別のキャラクター*は裸地です。植物がゾンビに隣接している場合、ゾンビは植物を攻撃する可能性があります。ゾンビから安全な植物の数を見つける必要があります。マトリックスが次のようになっていると仮定します- したがって、安全な植物は2つだけです。 行列を要素ごとにトラバースし、現在の要素が植物の場合は、植物がゾンビに囲まれているかどうかを確認します。そうでない場合は、カウントを増やします。 例 #include<iostream> using namespace std; bool

  2. C++で与えられた利益率とコストから販売価格を見つけます

    販売価格があり、利益または損失のパーセンテージが示されていると考えてください。製品の原価を見つけなければなりません。式は次のようになります- $$原価=\frac{販売価格∗100}{100+パーセント利益}$$$$原価=\frac{販売価格∗ 100}{100+パーセント損失}$$ 例 #include<iostream> using namespace std; float priceWhenProfit(int sellPrice, int profit) {    return (sellPrice * 100.0) / (100 + profit);

  3. C ++でK%p =0およびq%K=0となる最小数Kを見つけます

    2つの整数PとQがあるとします。KmodP=0とQmodK =0のように、最小の数Kを見つける必要があります。それ以外の場合は-1を出力します。したがって、PとQが2と8の場合、Kは2になります。2mod2 =0、8モード2=0として。 Kを可能にするには、QをPで割り切れる必要があります。したがって、P mod Q =0の場合はPを出力し、そうでない場合は-1を出力します。 例 #include<iostream> using namespace std; int getMinK(int p, int q) {    if (q % p == 0) &nbs

  4. C++の配列内のすべての要素に最も近い小さい値を検索します

    ここでは、配列内のすべての要素に最も近い値を見つける方法を説明します。要素xに、それよりも大きい次の要素があり、配列にも存在する場合、それはその要素のより大きな値になります。要素が存在しない場合は、-1を返します。配列要素が[10、5、11、6、20、12]であるとすると、大きい方の要素は[11、6、12、10、-1、20]になります。 20は配列内でそれ以上の値を持たないため、-1を出力します。 これを解決するために、C++STLの設定を使用します。セットは、バイナリツリーアプローチを使用して実装されます。二分木では、常に順序どおりの後続要素が次に大きい要素です。したがって、O(log n

  5. C++でnに最も近くmで割り切れる数を見つけます

    2つの整数nとmがあるとします。 nに最も近い数を見つけて、mで割る必要があります。そのような数値が複数ある場合は、絶対値が最大の数値を表示してください。 nがmで完全に割り切れる場合は、nを返します。したがって、n =13、m =4の場合、出力は12になります。 これを解決するには、次の手順に従います- q:=n / m、n1:=m*qとします 0の場合、n2:=m *(q + 1)、それ以外の場合、n2:=m *(q-1) if | n – n1 | <| n – n2 |、次にn1を返し、それ以外の場合はn2 例 #include<iostream> #incl

  6. C++の3つのリンクリストで共通の要素を検索します

    3つのリンクリストがあるとします。これらの3つのリンクリストに存在するすべての一般的な要素を見つける必要があります。これらのリストが[10、12、15、20、25]、[10、12、13、15]、および[10、12、15、24、25、26]であるとすると、これら3つのリストの共通要素は10です。 、12および15。 この問題を解決するためにハッシュ手法を使用します。これを解決するには、次の手順に従う必要があります- 空のハッシュテーブルを作成し、最初のテーブルの各要素を調べて要素を挿入し、頻度を1としてマークします 2番目のリンクリストを繰り返し、要素の現在の頻度が1の場合は、2に

  7. C++で少なくとも3つの連続した1を持つ長さNのバイナリ文字列の数を見つけます

    整数Nがあると仮定します。少なくとも、3つの連続した1を持つ、長さNのすべての可能な個別のバイナリ文字列の数を見つける必要があります。したがって、n =4の場合、数値は0111、1110、1111になるため、出力は3になります。 これを解決するために、動的計画法のアプローチを使用できます。したがって、DP(i、x)は、位置i+1からi+xにx個の連続する1がある長さiの文字列の数を示します。すると、漸化式は次のようになります- DP(i、x)=DP(i – 1、0)+ DP(i – 1、x + 1)。 再発は、文字列のいずれかが位置iに0または1で存在する可能性があるという事実に基づいて

  8. C++の3つのソートされた配列で共通の要素を検索します

    いくつかの要素を持つ3つの配列があるとします。これらの3つの配列に存在するすべての共通要素を見つける必要があります。これらの要素が[10、12、15、20、25]、[10、12、13、15]および[10、12、15、24、25、26]であるとすると、これら3つの配列の共通要素は10です。 、12および15。 配列A1を通過する現在の要素をx、A2をy、A3をzと仮定します。次のような場合があります- x、y、zが同じ場合は、それらのいずれかを出力し、各配列要素を1つ増やします x

  9. C++でのみ0と1の数字を含む1からnまでの整数の数を見つけます

    数nがあるとします。私たちのタスクは、1からnまでの整数の数を見つけることです。これには0と1の数字のみが含まれます。したがって、n =15の場合、出力はになります。数字は1、10、11なので これを解決するために、再帰関数を使用して0と1を使用して整数を作成します。次のコードは、これをよりよく理解するのに役立ちます。 例 #include<iostream> using namespace std; int numberOfValues(int p, int n) {    if (p > n)       return

  10. C++の数値の2進表現で長さ>=nの連続する1を検索します

    2つの整数xとnがあるとします。このタスクは、nの値以上の1の最初の連続ストリーム(32ビットバイナリ)を検索することです。長さを調整し、その位置を返します。そのような文字列が存在しない場合は、-1を返します。たとえば、x =35、n =2の場合、結果は31になります。32ビット整数での35のバイナリ表現は-のようになります。 00000000000000000000000000100011。したがって、2つの連続する1がインデックス31に存在するため、答えは31です。 この問題を解決するには、先行ゼロの数を見つける必要があり、その数から、連続する1を見つけようとします。より良いアイデアを

  11. xとx+1がC++で同じ数の約数を持つ範囲(1、N)の整数xの数を見つけます

    整数Nがあるとすると、整数1

  12. C++の2つの二重リンクリストで共通ノードの数を検索します

    二重にリンクされたリストが2つあるとします。二重にリンクされたリストの両方で、共通ノードの総数を見つける必要があります。したがって、2つのリストが[15、16、10、9、7、17]と[15、16、40、6、9]のような場合、3つの共通ノードがあります。 2つのネストされたループを使用して、両方のリストをリストの最後までトラバースします。リスト内のすべてのノードについて、2番目のリストのいずれかのノードと一致するかどうかを確認します。一致するものが見つかった場合は、カウンターを増やし、最後にカウントを返します。 例 #include<iostream> using namespac

  13. C++のゼロから数直線でXに到達するためのジャンプの数を見つけます

    整数Xがあるとします。0からXに到達するために必要なジャンプの最小数を見つける必要があります。最初に行われるジャンプの長さは1単位で、連続する各ジャンプの長さは前のジャンプよりも正確に1単位長くなります。各ジャンプで左または右に移動できます。したがって、X =8の場合、出力は4になります。0→-1→1→4→8が可能なステージです。 注意深く観察すれば、それを言うことができます 常に正しい方向にジャンプしている場合は、n回ジャンプすると、ポイントp =1 + 2 +3+…+nになります 左にジャンプできる場合は、k番目のジャンプでポイントp –2kになります。 どちらのジャンプを左に、どちら

  14. C++で二分木の2つのノード間の距離を見つける

    ノードが少ない二分木があると考えてください。 2つのノードuとvの間の距離を見つける必要があります。ツリーが次のようになっていると仮定します- これで、(4、6)=4の間の距離、パスの長さは4、(5、8)の間の長さ=5などになります。 この問題を解決するために、LCA(Lowest Common Ancestor)を見つけてから、LCAから2つのノードまでの距離を計算します。 例 #include<iostream> using namespace std; class Node {    public:       in

  15. C++でa=cとb=dのように数を4つの部分に分割する方法の数を見つけます

    数nがあるとします。 a =c、b =dとなるように、数を部分(a、b、c、d)に分割する方法をいくつか見つける必要があります。したがって、数値が20の場合、出力は4になります。[1、1、9、9]、[2、2、8、8]、[3、3、7、7]、および[4、4、6 、6] したがって、Nが奇数の場合、答えは0になります。数値が4で割り切れる場合、答えはn / 4 –1になります。それ以外の場合はn/4になります。 例 #include <iostream> using namespace std; int countPossiblity(int num) {    

  16. C++のバイナリツリーでルートから特定のノードまでの距離を検索します

    ノードが少ない二分木があると考えてください。ルートと別のノードuの間の距離を見つける必要があります。ツリーが次のようになっているとします。 これで、(root、6)=2の間の距離、パスの長さは2、(root、8)=3の間の距離などになります。 この問題を解決するために、再帰的アプローチを使用して、左右のサブツリーでノードを検索し、各レベルの長さも更新します。 例 #include<iostream> using namespace std; class Node {    public:       int data; &

  17. C++で最初のN個の素数の積を見つける

    数nがあるとします。 1からnまでの素数の積を見つけなければなりません。したがって、n =7の場合、出力は2 * 3 * 5 * 7=210のように210になります。 エラトステネスのふるい法を使用して、すべての素数を見つけます。次に、それらの積を計算します。 例 #include<iostream> using namespace std; long PrimeProds(int n) {    bool prime[n + 1];    for(int i = 0; i<=n; i++){      

  18. O(n)で配列内の重複を検索し、C ++でO(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

  19. C++の偶数と奇数の桁の合計を求めます

    整数Nがあるとすると、奇数桁と偶数桁の合計を求める必要があります。したがって、数値が153654のような場合、odd_sum =9、even_sum=15になります。 これを解決するには、最後の桁からすべての桁を抽出できます。元の数値の桁数が奇数の場合、最後の桁は奇数の位置にある必要があります。そうでない場合は、偶数の位置になります。数字を処理した後、状態を奇数から偶数に、またはその逆に反転できます。 例 #include<iostream> using namespace std; bool isOdd(int x){    if(x % 2 == 0) &

  20. C++で頻度がn/2以上のソートされた配列内の要素を検索します。

    サイズnの配列があると考えてください。この配列はソートされています。頻度がn/2以上の要素が1つあります。ここで、nは配列内の要素の数です。したがって、配列が[3、4、5、5、5]の場合、出力は5になります。 これらのタイプの配列を注意深く観察すると、頻度がn/2以上の数がインデックスn/2にも存在することが簡単にわかります。したがって、要素は位置n / 2にあります。 例 Source Code: #include<iostream> using namespace std; int higherFreq(int arr[], int n) {    ret

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