C ++

 Computer >> コンピューター >  >> プログラミング >> C ++
  1. C++で番号が乱雑になっていないかどうかを確認します

    ここでは、数字がごちゃ混ぜになっていないかどうかを確認するための興味深い問題が1つあります。数字は、すべての数字について、隣接する数字が最大1だけ異なる場合、混乱していると言われます。たとえば、数字1223は混乱していますが、1256は混乱していません。 この問題を解決するには、ディジットに1より大きい差のネイバーがあるかどうかを確認する必要があります。そのようなディジットが見つかった場合はfalseを返し、そうでない場合はtrueを返します。 例 #include <iostream> #include <cmath> using namespace std; bo

  2. C ++で/および%演算子を使用せずに、数値が5の倍数であるかどうかを確認します

    ここでは、数値が5で割り切れるかどうかを確認する方法を説明します。簡単なアプローチの1つは、数値mod 5 =0の場合、数値は5で割り切れるというものです。ただし、ここでは/または%演算子を使用しません。数値が5で割り切れるかどうかを確認するには、最後の数値が0または5であることを確認する必要があります。それが0または5の場合、数値は5で割り切れます。それ以外の場合はそうではありません。ここでは、チェックする文字列としてもいくつかの大きな数を使用できます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv5(str

  3. 数値がC++の回文であるかどうかを確認します

    ここでは、番号が回文であるかどうかを確認する方法を説明します。回文数は両方向で同じです。たとえば、番号12321は回文ですが、12345は回文ではありません。 ロジックは非常に単純です。数を逆にする必要があります。逆の数が実際の数と同じである場合、それは回文です。そうでない場合はそうではありません。より良いアイデアを得るためのアルゴリズムを見てみましょう。 アルゴリズム isPalindrome(n)- 入力 −数n 出力 −数値が回文の場合はtrue、それ以外の場合はfalse begin    temp := n    rev :=

  4. C ++で平方根を見つけずに、数値が完全な平方であるかどうかを確認します

    数が与えられたとすると、その数が完全な正方形であるかどうかを確認する必要があります。平方根演算を使用してチェックすることはしません。 1024という数があるとすると、これは完全な正方形ですが、1000は完全な正方形ではありません。ロジックは単純です。結果を得るには、このアルゴリズムに従う必要があります。 アルゴリズム isPerfectSquare(n)- 入力 −数n 出力 −数値が完全な正方形の場合はtrue、それ以外の場合はfalse begin    for i := 1, i2 ≤ n, increase i by 1:   &nbs

  5. C ++のビット演算子を使用して、数値が正、負、またはゼロかどうかを確認します

    31の両方が0を返します。そのために、次のような別の式を使用します- 31) だから今、もし nは負です:1 +(-1)– 0 =0 nは正です:1 + 0 –(-1)=2 nは0:1 + 0 – 0 =1 例 #include <iostream> #include <cmath> using namespace std; int checkNumber(int n){    return 1+(n >> 31) - (-n >> 31); } int printNumberType(int n){ &n

  6. C++で数値が8の累乗であるかどうかを確認します

    このセクションでは、数値が8の累乗であるかどうか、またはより簡単な方法を使用していないかどうかを確認します。 4096のような数値が存在する場合、これは8の累乗であるため、プログラムはtrueを返します。 トリックは簡単です。 log8(num)を計算します。これが整数の場合、nは8の累乗です。ここでは、tranc(n)関数を使用して、double値の最も近い整数を見つけます。 例 #include <iostream> #include <cmath> using namespace std; bool isPowerOfEight(int n) {  

  7. C ++の底の変換法を使用して、数値がkの累乗であるかどうかを確認します

    ここではプログラムが表示されます。1つの数値が指定され、別の値kも指定されている場合、その数値がkの累乗であるかどうかを確認する必要があります。しかし、この問題を解決するには、底の変換法を実行する必要があります。数値が27で、k =3であるとすると、底の変換法により、27は10003になります。ここで、底を変更した後、桁1が1つだけで、他が0の場合、数値はkの累乗になります。 。 この問題を解決するために、次の手順に従います。 手順 − フラグを定義する:=false 番号が0より大きい場合は、手順3〜6を繰り返します 数字を見つける:=数値mod k 数字が1より大きい場合は、f

  8. ポイントがC++の楕円の内側、外側、または上にあるかどうかを確認します

    1つの楕円が与えられ(中心座標(h、k)と半長軸a、および半短軸b)、別の点も与えられたとします。ポイントが楕円の内側にあるかどうかを確認する必要があります。それを解くには、与えられた点(x、y)について次の方程式を解く必要があります。 $$ \ frac {\ left(x-h \ right)^ 2} {a ^ 2} + \ frac {\ left(y-k \ right)^ 2} {b ^ 2} \ leq1 $$ 結果が1未満の場合、ポイントは楕円の内側にあり、そうでない場合はそうではありません。 例 #include <iostream> #include <

  9. ポイントがC++の放物線の内側、外側、または上にあるかどうかを確認します

    1つの放物線が与えられ(頂点座標(h、k)、焦点と頂点からの距離がa)、別の点も与えられたとします。ポイントが放物線の内側にあるかどうかを確認する必要があります。それを解くには、与えられた点(x、y)について次の方程式を解く必要があります \ left(y-k \ right)^ 2 =4a \ left(x-h \ right) 結果が0未満の場合、これは放物線の内側にあり、0の場合は放物線上にあり、0より大きい場合は、放物線の外側にあります。 例 #include <iostream> #include <cmath> using namespace std;

  10. C++でお互いからお金を借りてきた特定の友人のセット間のキャッシュフローを最小限に抑える

    友達が少ないとしましょう。彼らはお互いからお金を借りてきました。したがって、ネットワークにはある程度のキャッシュフローがあります。私たちの仕事は、ネットワークのキャッシュフローを最小限に抑えることです。 P1、P2、P3の3人の友達がいるとします。それらの間のキャッシュフローは以下のようです- このキャッシュフローは最小ではありません。最小化する必要があります。その場合、最終的な図は次のようになります- この問題を解決するために、貪欲なアプローチを使用します。ここで、各ステップで1人のすべての金額を決済し、残りのn-1人に対して繰り返します。さて、問題は、最初の人をどのように選

  11. C++で原点に最も近いK点を見つける

    一連のポイントがあるとします。私たちの仕事は、原点に最も近いK点を見つけることです。ポイントが(3、3)、(5、-1)、(-2、4)であるとします。次に、最も近い2つの(K =2)ポイントは(3、3)、(-2、4)です。 この問題を解決するために、ユークリッド距離に基づいてポイントのリストを並べ替えます。その後、並べ替えられたリストから最上位のK要素を取得します。これらはK最近傍点です。 例 #include<iostream> #include<algorithm> using namespace std; class Point{    pri

  12. C++の単一の循環リンクリストで最小要素と最大要素を検索します

    ここでは、1つの単一循環リンク線形リストから最小値と最大値を取得する方法を説明します。基本的な考え方はとてもシンプルです。最後のノードの次の部分は最初のノードを指し、最初のノードも開始ポインターを使用して指します。リストに要素を挿入すると、新しく挿入されたノードの次の部分が挿入された後、開始ノードのアドレスで更新されます。 最初に、minには正の無限大が割り当てられ、maxには負の無限大が割り当てられます。次に、リストを左から右にトラバースします。現在の要素がmin要素よりも小さい場合は、minを更新し、現在の要素がmax要素よりも大きい場合は、maxを更新します。したがって、最小値と最大値

  13. C++で特定のポイントセットの単純な閉じたパスを検索します

    一連のポイントがあると考えてください。すべてのポイントをカバーする単純な閉じたパスを見つける必要があります。ポイントが以下のようであり、次の画像がそれらのポイント上で閉じたパスを作成していると仮定します。 パスを取得するには、次の手順に従う必要があります- 左下の点をPとして見つけます Pを中心に反時計回りに極角に基づいて他のn– 1点を並べ替えます。2点の極角が同じである場合は、距離が最短になるように配置します。 ソートされたポイントのリストをトラバースし、パスを作成します 例 #include <bits/stdc++.h> using names

  14. C++で円に関する座標の象限を見つける

    1つの円(中心座標と半径)があり、別の指定された点(x、y)の象限が円の中心を基準にして存在することを確認する必要があります。これが円に存在する場合は象限を印刷し、そうでない場合はエラーを印刷します。ポイントは外にあるので。 円の中心が(h、k)であり、点の座標が(x、y)であると仮定します。円の方程式は-であることがわかっています。 (𝑥−ℎ) 2 +(𝑦−𝑘) 2 +𝑟2 =0 現在、結果を決定するための条件はほとんどありません。 𝑖𝑓(𝑥−ℎ) 2 +(𝑦−𝑘) 2 𝑟、𝑡ℎ𝑒𝑛𝑡ℎ𝑒𝑝𝑜𝑖𝑛𝑡𝑖𝑠𝑜𝑢𝑡𝑠𝑖𝑑𝑒

  15. フリップフロップの種類とC++での変換

    フリップフロップはシーケンシャルデジタル回路です。フリップフロップにはいくつかの種類があります。ここでは、フリップフロップのタイプと、あるフリップフロップから別のフリップフロップへの変換ルールを確認します。 フリップフロップには基本的に4つのタイプがあります- SRフリップフロップ Dフリップフロップ JKフリップフロップ Tフリップフロップ SRフリップフロップ SRフリップフロップは、正のクロック遷移または負のクロック遷移のみで動作します。一方、SRラッチはイネーブル信号で動作します。 SRフリップフロップの回路図を次の図に示します。 この回路には、2つの入力SとR、および

  16. バイナリツリーがC++でレベルごとにソートされているかどうかを確認します

    ここでは、二分木がレベルごとにソートされているかどうかを確認する方法を説明します。レベルごとにソートされた二分木は次のようになります- 各レベルでは、ノードは左から右に並べ替えられ、各レイヤーには前のレベルよりも高い値が含まれています。 レベル順序トラバーサルを実行することでこの問題を解決し、現在のレベルの最小要素と最大要素を追跡できます。別の変数prev_maxを使用して、前のレベルの最大値を保持します。次に、現在のレベルの最小値と前のレベルの最大値prev_maxを比較します。 min値がprev_maxより大きい場合、ツリーは現在のレベルまでレベルごとに並べ替えられます。次に、

  17. 二分木がC++の別の二分木のサブツリーであるかどうかを確認します

    2つの二分木があるとします。小さい方のツリーが別の二分木のサブツリーであるかどうかを確認する必要があります。これらの2本の木が与えられていると考えてください。 2本の木があります。 2番目のツリーは、最初のツリーのサブツリーです。このプロパティを確認するために、ポストオーダー方式でツリーをトラバースします。このノードをルートとするサブツリーが2番目のツリーと同一である場合、それはサブツリーです。 例 #include <bits/stdc++.h> using namespace std; class node {    public:   &

  18. 二重にリンクされた文字のリストがC++で回文であるかどうかを確認します

    ここでは、文字列が回文であるか、二重リンクリストを使用していないかを確認する方法を説明します。ここでは、文字列の各文字を1つの二重リンクリスト内にプッシュします。左と右の2つのポインタがあります。次に、両側からスキャンを開始します。左の文字が右の文字と同じである場合は、左のポインタを次のノードに移動し、右のポインタを前のノードに移動します。それ以外の場合は、falseを返します。このプロセスは、左と右が同じノードを指すか、右のポインターが左のポインターの前の要素を指すまで続けられます。 例 #include <iostream> using namespace std; class

  19. 特定の配列に、C++でそれぞれからk距離以内に重複する要素が含まれているかどうかを確認します

    ここでは、ソートされていない配列に、互いにk距離以内に重複する要素があるかどうかを確認する方法を説明します。要素のリストが{1、2、3、1、4、5}であると仮定します。ここで、k =3の場合、2つの1の間の距離は3であるため、プログラムはtrueを返します。 ハッシュテーブルを使用してこれを解決します。手順は次のようになります- 空のハッシュテーブルを1つ作成します 各インデックスiについて、リスト内の要素e =arr[i]とします。 ハッシュテーブルにeが存在する場合は、trueを返します =Kの場合、ハッシュテーブルから(i-k)番目の要素が存在する場合は削除します。 例 #i

  20. 特定のバイナリツリーがC++のSumTreeであるかどうかを確認します

    ここでは、二分木が和木であるかどうかを確認する方法を説明します。ここで問題となるのは、合計ツリーとは何かです。合計ツリーは、ノードがその子の合計値を保持する二分木です。ツリーのルートには、その下にあるすべての要素の合計が含まれます。これは合計ツリーの例です- これを確認するために、簡単なトリックに従います。合計値がルートと同じである場合は、左右のサブツリー要素の合計を見つけます。これが合計ツリーです。これは再帰的なアプローチの1つになります。 例 #include <bits/stdc++.h> using namespace std; class node {  

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