C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. 長さMのすべての個別の円形文字列をC++で辞書式順序で印刷します

    この問題では、文字列と整数Mが与えられます。タスクは、長さMのすべての個別の円形文字列を辞書式順序(アルファベット順)で印刷することです。 問題を理解するために例を見てみましょう Input: str= “ssssn” M=3 Output: nss sns ssn sss 説明 −長さ3のすべての可能な円形ストリングは次のとおりです。ssssss ssnsnsnss。辞書式順序の異なる要素は、 sss ssnsnsnssです。 この問題を解決するために、文字列の要素を反復処理し、長さMのすべての可能なサブ文字列を生成します。この生成された文字列を、個別の要素の

  2. 文字列のすべての異なる文字をC++で順番に出力します

    この問題では、文字列が与えられます。私たちのタスクは、文字列のすべての異なる文字を、文字列に表示される順序で印刷することです。 私たちの問題を理解するために例を見てみましょう Input: tutorials Point Output: uralsPn この問題を解決する方法は複数ありますが、最も効果的な方法について説明します。単純なものには、ループのネストが含まれます。 このために、サイズ256の2つの配列を使用します(8ビット文字が格納されます)。 まず、カウンター配列のすべての値を0に初期化し、インデックス配列のすべての値をn(文字列の長さ)に初期化します。文字列strの走査時、

  3. C++で特定の数を構成できるポイントのすべての組み合わせを印刷します

    この問題では、合計スコアnが与えられます。合計スコアがnになる1、2、および3のバスケットボールポイントのすべての組み合わせを印刷します。 問題を理解するための例を見てみましょう。 Input: 4 Output: 1 1 1 1 1 1 2 1 2 1 1 3 2 1 1 2 2 3 1 この問題を解決するために、再帰を使用します。そして、残りの値n-sの修正とリソース。ここで、sはスコアです。組み合わせの合計がnになる場合は、組み合わせを印刷します。 例 コードは、コードの実装を示しています- #define MAX_POINT 3 #define ARR_SIZE 100 #inc

  4. C++で要素のすべての組み合わせを出力します

    この問題では、番号nが与えられます。私たちの仕事は、nの因数のすべての組み合わせを印刷することです。 トピックをよりよく理解するために例を見てみましょう- Input: 24 Output: 2 2 2 3 2 4 3 8 3 4 6 2 12 このために、数の要素の組み合わせを見つける再帰関数を使用します。そして、すべての組み合わせを配列の配列に格納します。 例 このコードは、ソリューションの実装を示しています。 #include<bits/stdc++.h> using namespace std; vector<vector<int>> fact

  5. バランスの取れた括弧のすべての組み合わせをC++で印刷します

    この問題では、整数nが与えられます。私たちのタスクは、n個のバランスの取れた括弧の可能なすべてのペアを印刷することです。 バランスのとれた括弧 対応するすべての開始記号の終了記号を持つ括弧のペアです。また、ペアは適切にネストする必要があります。 問題を理解するために例を見てみましょう Input: n = 2 Output: {}{} {{}} この問題を解決するには、ブラケットのペアを追跡する必要があります。ブラケットの初期カウントは0です。次に、ブラケットの総数がn未満になるまで、関数を再帰的に実行します。角かっこを数えます。数に基づいて角かっこを再帰的に呼び出します。開始ブラケット

  6. C++では3桁の繰り返し数をすべて非常に大きな数で印刷します

    この問題では、番号が与えられます。そして、3桁の繰り返し番号をすべて印刷する必要があります。 問題を理解するために例を見てみましょう Input: 98769876598765 Output:    987: 3 times    876: 3 times    765: 2 times この問題を解決するために、文字列に格納されている多数を使用します。数字の桁は文字として数えられます。ここで、最初の3つの数値を確認してから、3番目のインデックスから最後までチェックして、新しい数値を取得します。この後、次の3桁の数字がその頻度を数

  7. C++で波のパターンで文字列を印刷します

    この問題では、文字列と整数nが与えられます。私たちのタスクは、指定された文字列を波のパターンで印刷することです。 n行の。 問題を理解するために例を見てみましょう Input: Tutorial n = 3 Output: T             r    U       o       i       s       t          

  8. C++でループを使用せずにパターンを印刷する

    この問題では、番号nが与えられます。私たちの仕事は、0または負に減少してから数に戻って増加するパターンを印刷することです。 問題を理解するために例を見てみましょう Input: n = 12 Output: 12 7 2 -3 2 7 12 この問題を解決するために、再帰を使用して、更新のたびに関数を呼び出します。更新の追跡は、関数に数値を5ずつ増減するように指示するフラグ変数を使用して保持されます。 例 以下のコードは、私たちのソリューションの実装を示しています #include <iostream> using namespace std; void printNextV

  9. C ++ですべての桁が区別されるように、指定された数値よりも厳密に小さい数値を出力します

    この問題では、番号nが与えられます。私たちの仕事は、すべての桁が区別できるように、n未満の最大数を印刷することです。 問題を理解するために例を見てみましょう Input: n = 2332 Output: 2319 この問題を解決するために、数値のカウントを逆にします。つまり、nから0になります。そして、現在のカウント値が条件を満たしている場合は、数字が異なる数値をチェックして、出力してループを終了します。それ以外の場合は、ループを続行します。ループが実行される最大回数は常にn未満です。 例 ソリューションを実装するためのプログラム #include <bits/stdc++.h&

  10. C++で数字根Dを使用してK桁を含む数値を出力します

    この問題では、KとDの2つの数値が与えられます。私たちのタスクは、数字根がDに等しいk桁の数値を出力することです。 数字根 は、1桁の数値に達するまで、数値の桁を再帰的に加算した結果である1桁の値です。デジタル合計とも呼ばれます。 問題を理解するために例を見てみましょう Input: D = 5 , K = 6 Output: 60000 この問題を解決するために、数値Dの後にゼロの試行を使用します。数値は {D000 ..(k-1回)}になります。 。これは私たちの問題に対するシンプルでエレガントな解決策であり、それほど複雑ではありません。 例 ソリューションの実装を示すプログラム

  11. C++で逆波形で行列を印刷します

    この問題では、行列が与えられます。私たちのタスクは、行列を逆波形で印刷することです。 一行で。 この例で問題が明確になります Input:    1 4 6 11    2 5 8 54    7 9 3 43    1 7 4 34 Output: 11 54 43 34 4 3 8 6 4 5 9 7 1 7 2 1 この問題を解決するには、行列の逆波形を印刷する必要があります。このために、最後の列の要素を下方向に印刷し、最後から2番目の列の要素を上方向に印刷します。これに配列の最初の列があります。 例 ソリ

  12. C ++で別の方法(左から右、次に右から左)で行列を印刷します

    この問題では、2D配列が与えられます。私たちのタスクは、配列のすべての要素を最初の行から始めて、左から右に、次に右から左に次の行に、そして再び左から右に、というように印刷することです。 問題を理解するために例を見てみましょう。 Input: array = {    {2, 5}    {4, 9} } Output: 2 5 9 4 この問題を解決するために、行の指定された方向(LtoRおよびRtoL)に要素を印刷します。また、印刷の方向を示すフラグ要素は、反復ごとに切り替わります。 これは、時間計算量= O(R * C)の簡単で効率的なソリュー

  13. C++のポイントから始まるスパイラル形式で行列を印刷します

    この問題では、2次元行列と点P(c、r)です。私たちのタスクは、行列のすべての要素を、指定された点Pから始まるスパイラル形式(反時計回り)で印刷することです。 私たちの問題を理解するために例を見てみましょう Input: matrix[][] = {{3, 5, 7} } Output: この問題を解決するために、要素の印刷に4つのループを使用します。各ループは、独自の方向の要素を出力します。ポイントpから印刷を開始し、スパイラルフォームの印刷を続行します。 例 ソリューションの実装を示すプログラム #include <iostream> using namespace std;

  14. 指定された行列をC++でジグザグ形式で印刷します

    この問題では、2次元の行列が与えられます。私たちの仕事は、マトリックスのジグザグ形式を印刷することです。 問題を理解するために例を見てみましょう Input:    12 99 43    10 82 50    15 75 5 Output: 12 99 43 50 82 10 15 75 5 この問題を解決するために、配列の要素を両方向(LtoRとRtoL)に出力します。そして、フラグ変数を使用して方向を変更します。 例 #include <iostream> using namespace std; void p

  15. 与えられた行列をC++で逆スパイラル形式で印刷します

    この問題では、2次元の行列が与えられます。私たちの仕事は、マトリックスのすべての要素を逆スパイラル形式で印刷することです。 問題を理解するために例を見てみましょう Input:    12 23 54 67    76 90 01 51    43 18 49 5    31 91 75 9 Output: 18 49 1 90 76 43 31 91 75 9 5 51 67 54 23 12 マトリックスの中心から開始し、要素を逆スパイラル方向に印刷し、要素を逆方向に印刷するために4つのループを取ります。

  16. 与えられた行列をC++で反時計回りのスパイラル形式で印刷します

    この問題では、2次元の行列が与えられます。そして、私たちのタスクは、から反時計回りのスパイラルで行列の要素を印刷することです。 反時計回りのスパイラルフォーム −これは、左上から始まり、反時計回りに最初の右下から左上に向かって進むスパイラルトラバーサルです。 反時計回りのトラバーサルは159 13 14 15 16 12 8 4 3 2 6 10117になります。 問題を理解するために例を見てみましょう Input:    2 4 6    1 7 9    5 0 3 Output: 2 1 5 0 3 9 7 この問

  17. C++で隣接する重複を含まない最も近い文字列を出力します

    この問題では、文字列が与えられます。私たちのタスクは、現在の文字列に最も近く、隣接する重複文字を含まない文字列を印刷することです。 問題を理解するために例を見てみましょう Input: string = “good” Output: goad この例では、インデックス1と2の要素が同じであることがわかったため、インデックス2の要素を変更します。 この問題を解決するために、文字列をトラバースして、隣接する2つの要素が同じであるかどうかを確認します。はいの場合は、2番目の要素を変更します(i要素とi + 1要素が同じ場合は、i + 1要素を変更します)。これを解決するに

  18. 指定された並べ替えアルゴリズムがC++で失敗した場合を出力します

    この問題では、並べ替えアルゴリズムと数値nが与えられます。私たちのタスクは、アルゴリズムで並べ替えることができなかったn個の要素の配列を出力することです。つまり、アルゴリズムは失敗します。 アルゴリズム loop i from 1 to n-1    loop j from i to n-1    if a[j]>a[i+1]       swap(a[i], a[j+1]) この並べ替えアルゴリズムを見てみましょう。2つのネストされたループを使用しています。外側の要素は1からn-1で始まり、内側の要素はiからn-1

  19. C++でのパス合計III

    各ノードが整数キーを保持する二分木を与えたと仮定します。合計して特定の値になるパスを見つける必要があります。パスはルートからリーフまで開始する必要があります。合計が同じになるパスを見つける必要があります。 ツリーが[5,4,8,11、null、13,4,7,2、null、null、5,1]のようで、合計が22の場合、-になります。 パスは[[5,4,11,2]、[5,8,4,5]]です。 これを解決するには、次の手順に従います- この問題を解決するには、dfs関数を使用します。dfsはわずかに変更されています。これは次のように機能します。この関数は、ルート、合計、および1つの一時

  20. C++で2つの二分木をマージする

    2つの二分木があり、一方をもう一方を覆うように配置すると、2つのツリーの一部のノードがオーバーラップし、他のノードがオーバーラップするとします。それらを新しいバイナリツリーにマージする必要があります。マージルールは、2つのノードがオーバーラップしている場合、ノード値を合計して、マージされたノードの新しい値として計算するようなものです。それ以外の場合は、空でないノードが新しいツリーのノードとして使用されます。 したがって、木が- その場合、出力は-になります これを解決するには、次の手順に従います- メソッドはmergeTrees()です。これは、2つのツリーノードn1と

Total 5992 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:126/300  20-コンピューター/Page Goto:1 120 121 122 123 124 125 126 127 128 129 130 131 132