-
3つの数字の中から最大の数字を見つけるCプログラム
このプログラムは3つの数字を取り、すべての中で最大のものを見つけます。このために、数値を相互に比較して、どれが最大かを調べます Input: a=2,b=4,c=7 Output:7 Largest Number 説明 このプログラムは、ifステートメントのみを使用して最大数を検索します。 例 #include <iostream> using namespace std; int main() { int a,b,c; a=2,b=4,c=7; if(a>b) { &
-
10進数から2進数への変換のためのCプログラム?
整数を10進数システム(基数10)から2進数システム(基数2)に変換します。整数のサイズは32ビットと想定されているため、数値を底で割る必要があります。これは、整数値をコンピューターであるバイトに変更するためにコンピューターによって使用されます。 Input:10 Output:1010 説明 10進数が10の場合 10を2で割ると、余りはゼロになります。したがって、0。 10を2で割ります。新しい数値は10/2=5です。 5を2で割ると余りは1になります。したがって1です。 5を2で割ります。新しい数値は5/2=2です。 2を2で割ったとき余りはゼロです。し
-
nPrの値を計算するCプログラム?
順列、nPrは、次のように表すこともできます。P(n、r)は、順列の数を求める数式です。 P(n、r)の式はnです! /(n – r)!. n個の要素のセットの順列の数はnで与えられます!どこ !階乗を表します。 Input:n=5;r=4; Output:120 説明 P(5, 4) = 5! / (5-4)! => 120 / 1 = 120 5!=1*2*3*4*5*=120 例 #include<iostream> using namespace std; long int fact(int x) { int i, f=1;
-
ナンバーリンクゲーム?
番号リンクは、グリッド内の番号を接続するためのパスを見つけることを含む一種のロジックパズルです。 ナンバーリンクパズルの簡単な例ナンバーリンクパズルの解決策 ルール −プレーヤーは、グリッド上のすべての一致する番号を単一の連続した線(またはパス)とペアにする必要があります。線は互いに分岐したり交差したりすることはできず、数字は各線の終わりにある必要があります(つまり、中央ではありません)。一部のNumberlink設計者はこれを規定していませんが、問題は独自の解決策があり、グリッド内のすべてのセルが塗りつぶされている場合にのみ適切に設計されていると見なされます。 ゲーム −n×
-
リンクリストとして表される番号に1を追加しますか?
5)として表されます。 そして、このリンクリストで表される数値に1を追加するには、リストの最下位ビットの値を確認する必要があります。 9未満であれば問題ありません。そうでない場合、コードは次の桁を変更します。 0) Input:1999 Output:2000 説明 リンクリストとして表される特定の番号に1を追加するには、次のいくつかの手順に従うことを意味します。 1に変換されます。 この変更されたリンクリストについては、リストをトラバースし、左端のノードに1つ追加します。このノードの値が9に等しい場合は、キャリーを次のノードに伝播します。キャリーが来るまで同じ手順を実行します。 文字
-
特定のBSTのすべてのノードにすべての大きい値を追加しますか?
BSTまたは二分探索木は、すべての左ノードがルート値よりも小さく、すべての右ノードが大きい二分木の形式です。この問題では、バイナリツリーを取得し、現在のノードより大きいすべての値を追加します。 「BSTのすべてのノードにすべての大きい値を追加する」という問題は単純化されています。BSTの場合、現在のノード値よりも大きいすべてのノード値をそのノード値に追加します。 BST問題ステートメントの各ノードにすべての大きい値を追加します: 二分探索木(BST)が与えられた場合、各ノードに、より大きな値のすべてのノードの合計を追加する必要があります。 入力 10
-
与えられた制約で与えられた配列の要素を追加しますか?
この問題では、2つの指定された配列の要素を追加するために、追加値が変更されることに基づくいくつかの制約があります。与えられた2つの配列a[]とb[]の合計は、いくつかの要素を1桁で与えるように、3番目の配列c[]に格納されます。合計の桁数が1より大きい場合、3番目の配列の要素は2つの1桁の要素に分割されます。たとえば、合計が27の場合、3番目の配列はそれを2,7として格納します。 Input: a[] = {1, 2, 3, 7, 9, 6} b[] = {34, 11, 4, 7, 8, 7, 6, 99} Output: 3 5 1 3
-
0-1 CプログラムのBFS(バイナリウェイトグラフの最短経路)?
いくつかのノードと接続されたエッジを持つグラフがあるとします。各エッジには2進の重みがあります。したがって、重みは0または1になります。ソース頂点が指定されます。ソースから他の頂点への最短経路を見つける必要があります。グラフが以下のようになっていると仮定します- 通常のBFSアルゴリズムでは、すべてのエッジの重みは同じです。ここでは、いくつかは0で、いくつかは1です。各ステップで、最適な距離条件を確認します。ここでは、両端キューを使用してノードを格納します。そこで、エッジの重みを確認します。 0の場合は前に押し、そうでない場合は後ろに押します。より良いアイデアを得るためにアルゴリズムを
-
3桁のオシリス番号Cプログラム?
ここにオシリス番号が表示されます。オシリス数は、自分の数字のサブサンプルの順列の合計に等しい種類の数です。数が132であると仮定します。次に、{12 + 21 + 13 + 31 + 23 + 32}を計算すると、これも132になります。したがって、数はオシリス数です。与えられた番号がオシリス番号かどうかを確認する必要があります。 アプローチは簡単です。数字を分析すると、各桁は2回出現しているため、1の位置と10の位置にあります。したがって、11を掛けて確認できます。 アルゴリズム isOsirisNumber(n)− Begin a := last digit
-
C / C ++ポインターパズル?
サイズが4バイトの整数変数が1つあり、サイズが8バイトの別のポインター変数があるとします。では、次の出力はどうなるでしょうか? 例 #include<iostream> using namespace std; main() { int a[4][5][6]; int x = 0; int* a1 = &x; int** a2 = &a1; int*** a3 = &a2; cout << s
-
Cプログラムのピーターセングラフ問題?
以下のようなグラフが1つあるとします。そのグラフはピーターセングラフです。頂点には0から9までの番号が付けられています。各頂点にはいくつかの文字があります。そのグラフで、L個の頂点が使用されている1つの歩行Wを考えてみましょう。 WとSの文字シーケンスが同じである場合、L文字の文字列SはウォークWによって実現されます。頂点に何度もアクセスできます。 たとえば、1つの文字列Sは「ABBECCD」のようなもので、これはウォーク(0、1、6、9、7、2、3)によって実現されます。私たちのタスクは、そのような歩行を見つけることです。その歩行が存在する場合は、辞書式順序でそのような歩行が最も少な
-
CプログラムにおけるLCSのスペース最適化ソリューション?
ここでは、LCS問題に対する1つのスペース最適化アプローチを示します。 LCSは、最長共通部分列です。 2つの文字列が「BHHUBC」と「HYUYBZC」の場合、サブシーケンスの長さは4です。1つの動的計画法アプローチはすでにそれらですが、動的計画法アプローチを使用すると、より多くのスペースが必要になります。次数mxnのテーブルが必要です。ここで、mは最初の文字列の文字数、nは2番目の文字列の文字数です。 ここでは、O(n)個の補助スペースを使用してこのアルゴリズムを実装する方法を説明します。各反復で見られる古いアプローチを観察する場合、前の行のデータが必要です。すべてのデータが必要なわけで
-
3-Way QuickSort(オランダ国旗)
ここではクイックソートの手法を見ていきますが、スリーウェイクイックソートを使用します。基本的なクイックソート手法は、ピボットとして要素を見つけ、ピボットの周りに配列を分割し、その後、ピボットの左右のサブ配列に対して繰り返します。 スリーウェイクイックソートも同様ですが、3つのセクションがあります。配列arr[1からn]は3つの部分に分かれています。 arr [1 to i] arr [i + 1、j] arr [j + 1、n] アルゴリズム パーティション(arr、左、右、i、j)- begin if right – left <
-
Cプログラムを使ったパズル
ここでは、Cパズルの質問が1つ表示されます。 48と96の2つの番号があるとします。2番目の番号の後に最初の番号を追加する必要があります。したがって、最終結果は9648のようになります。ただし、論理、算術、文字列関連の操作を使用することはできません。また、事前定義された関数を使用することもできません。では、どうすればそれができるでしょうか? これは簡単。 Cでトークン貼り付け演算子(##)を使用して実行できます。トークン貼り付け演算子はプリプロセッサ演算子です。 2つのトークンを1つの文字列に追加または連結するコマンドをコンパイラに送信します。この演算子はマクロ定義で使用します。 例 #in
-
多形性の種類-アドホック、インクルージョン、パラメトリック、強制
ここでは、さまざまなタイプのポリモーフィズムを確認します。タイプは-です アドホック 包含 パラメトリック 強制 アドホック多相はオーバーロードと呼ばれます。これにより、同じ名前の関数がタイプごとに異なる方法で動作できるようになります。関数と演算子の両方がオーバーロードされる可能性があります。一部の言語は演算子のオーバーロードをサポートしていませんが、関数のオーバーロードは一般的です。 例 #include<iostream> using namespace std; int add(int a, int b) { return a + b; } s
-
指定されたBSTのすべてのノードにすべての大きい値を追加します
ここでは、1つの興味深い問題が発生します。ここでは、1つの与えられた二分探索木のすべてのノードにより大きな値を追加します。したがって、最初と最後のツリーは次のようになります- アルゴリズム bstUpdate(root、sum)- Begin if root is null, then stop bstUpdate(right of room, sum) sum := sum + value of root update root value using sum
-
C /C++プリプロセッサディレクティブ
CまたはC++では、(#)記号で始まるさまざまな行が見つかりました。これらは前処理ディレクティブと呼ばれます。これらの行は、コードをコンパイルする前に前処理フェーズで処理されます。ここでは、3つの異なるタイプの前処理ディレクティブが表示されます。これらは-です 条件付きコンパイル ラインコントロール エラーディレクティブ プログラムでいくつかのマクロを定義することがあります。条件付きコンパイルディレクティブの使用。マクロが定義されているかどうかを確認できます。それらを制御することもできます。したがって、1つのマクロが定義されている場合は、いくつかのタスクを実行します。それ以外の場合は、そ
-
2のn乗としてn番目の項を持つ級数の合計を見つけるC/C ++プログラム-(n-1)2の累乗
ここでは、n番目の項がn2 –(n-1)2である級数の合計を取得する方法を説明します。漸化式は以下のようになります- T n =n 2 −(n−1) 2 つまり、シリーズは- S mod(10 9 )を見つける必要があります + 7)、ここで、Sは指定されたシリーズのすべての項の合計です。 例 #include<iostream> #define X 1000000007 using namespace std; long long getSum(long long n) { return ((n % X) * (n % X))
-
C /C++でのpthreadを使用したマトリックスの加算と減算
ここでは、マルチスレッド環境を使用して行列の加算と減算を実行する方法を説明します。 pthreadは、CまたはC++で複数のスレッドを同時に実行するために使用されます。 2つの行列AとBがあります。各行列の次数は(m x n)です。各スレッドは各行を取得し、加算または減算を実行します。したがって、m行の場合、m個の異なるスレッドがあります。 例 #include<iostream> #include <pthread.h> #include <cstdlib> #include <cstdint> #define CORE 3 #define
-
C /C++を使用した配列操作と合計
ここでは、1つの配列が与えられたと仮定して、1つの問題が発生します。 n個の要素があります。別の値Sも与えられます。配列内で要素Kを見つける必要があります。これにより、Kより大きいすべての要素がKと等しくなると、最終的な配列のすべての要素の合計がSに等しくなります。それが不可能な場合は、次に-1を返します。 要素が{12、6、3、7、8}で、合計値が15で、出力が3であるとします。最終的な配列は{3、3、3、3、3}、配列要素の合計はS =15 アルゴリズム getVal(arr、n、S) − Begin sort arr as increasing ord