-
C++で指定された整数に3.5を掛けます
n * 3.5の結果を取得するには (n * 2)+ n +(n / 2)を計算する必要があります 。ビットを1だけ左に移動すると、 n * 2になります。 ビットを右に移動すると、 n / 2 。それらを追加して結果を取得します。 n * 3.5 =(n * 2)+ n +(n / 2) 上記の式を検証するために、nのさまざまな値を送信できます。いくつかの例を見てみましょう。 入力 2 7 10 出力 7 24 35 アルゴリズム 番号nを初期化します。 左シフトビット演算子を使用してn*2を見つけます 右シフトビット演算子を使用してn/2を見つけます。 上記の両方の値をnと
-
C ++で*および/演算子を使用せずに、数値に15を掛けます
左シフト(<<)を使用できます 15で乗算する演算子 。シフトを左に移動した場合1 、次に 2を掛けます 。 4で指定された番号を左シフトすると 、次に 16*nを取得します。 16 * nから指定された数値を引くと、15*nになります。 または 8 * n + 4 * n + 2 * n+nとして分割することもできます。 2の累乗を簡単に掛けることができます 左シフトを使用します。 アルゴリズム 番号nを初期化します。 n<<4を見つけて16*nを取得します。 上記の結果からnを引きます。 最終的な答えを返します。 実装 以下は、C++での上記のアルゴリズムの実装です
-
C++でビット演算子を使用して任意の数値を乗算します
このチュートリアルでは、ビット演算子を使用して、指定された2つの数値を乗算するプログラムを作成します。 左シフト(<<) 乗算には演算子が使用されますが、) 分割に使用されます。 2つの数値の乗算x、y x * y =(x * 2)*(y / 2)と書くことができます yがそれ以外の場合は、 x * y =(x * y)*(y / 2)+xに等しくなります。 したがって、2番目の数値が奇数になるたびに、最初の数値を結果に追加します。問題を解決するための手順を見てみましょう。 アルゴリズム 2つの数字を初期化します。 2番目の数値が0になるまで繰り返すループを記述します。 2番目
-
C++で文字列として表される大きな数を乗算する
文字列形式で2つの数値を指定します。それらを掛ける必要があります。この問題を解決するためのアイデアは、前の桁の乗算の答えとキャリーを維持することです。前の桁の乗算の答えとキャリーを使用して、次のセットの桁の乗算を取得できます。 例を見てみましょう。 入力 15 2 出力 30 アルゴリズム 文字列で数値を初期化します。 長さnumber_one_length+number_two_lengthの文字列を初期化します。 最後から最初の番号を繰り返します。 最後から2番目の数字を繰り返します。 2桁を乗算し、対応する前の行の桁を追加します。 前の行の
-
リンクリストとして表される2つの数値をC++の3番目のリストに乗算します
数字が含まれる2つのリンクリストがあるとします。リンクリストによって形成される2つの数値を乗算する必要があります。これは、2つのリンクリストから番号を作成することで簡単に実行できます。例を見てみましょう。 入力 1 -> 2 -> NULL 2 -> 3 -> NULL 出力 2 -> 7 -> 6 -> NULL アルゴリズム 2つのリンクリストを初期化します。 2つの変数を0で初期化して、2つの数値を格納します。 2つのリンクリストを繰り返し処理します。 最後にあるそれぞれの数値変数に各桁を追加します。 結果の数値を乗算し、結果を変
-
C++のリンクリストで表される2つの数値を乗算します
数字が含まれる2つのリンクリストがあるとします。リンクリストによって形成される2つの数値を乗算する必要があります。これは、2つのリンクリストから番号を作成することで簡単に実行できます。例を見てみましょう。 入力 1 -> 2 -> NULL 2 -> 3 -> NULL 出力 2 -> 7 -> 6 -> NULL アルゴリズム 2つのリンクリストを初期化します。 2つの変数を0で初期化して、2つの数値を格納します。 2つのリンクリストを繰り返し処理します。 最後にあるそれぞれの数値変数に各桁を追加します。 結果の数値を乗算し、結果を変
-
C++で2つの多項式を乗算します
多項式の各項の係数は配列で与えられます。 2つの多項式を乗算する必要があります。例を見てみましょう。 入力 A = [1, 2, 3, 4] B = [4, 3, 2, 1] 出力 4x6 + 11x5 + 20x4 + 30x3 + 20x2 + 11x1 + 4 アルゴリズム 2つの多項式を初期化します。 2つの多項式の長さの新しい配列を作成します。 2つの多項式を繰り返します。 最初の多項式から1つの項を取り、それを2番目の多項式のすべての項と乗算します。 結果を結果の多項式に格納します。 実装 以下は、C++での上記のアルゴリズムの実装で
-
数値はC++では29で割り切れるかどうか
それは簡単な問題です。モジュロ(%)演算子を使用して、指定された数値が29で割り切れるかどうかを確認できます。いくつかの例を見てみましょう。 入力 29 254 出力 1 0 アルゴリズム 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/stdc++.h> using namespace std; bool isDivisibleBy29(long long n) { return n % 29 == 0; } int main() { cout << is
-
C++の配列内の異常の数
このチュートリアルでは、指定された配列内の異常の数を見つけるプログラムを作成します。 数値と他のすべての数値との絶対差が指定された数値kより大きい場合、その数値は指定された配列の異常です。例を見てみましょう。 入力 arr = [3, 1, 5, 7] k = 1 出力 4 すべての数値と他の数値との絶対差はkより大きくなります。 アルゴリズム アレイを初期化します。 アレイを繰り返し処理します。 要素を取得し、配列を反復処理します。 2つの数値の絶対差を求めます。 絶対差がk以下でない場合は、異常の数を増やします。 実装 以下は、C++
-
要素が正の整数で、C++では合計がKであるサイズNの配列の数
nとkの2つの数が与えられます。合計がkであるn個の数を使用して形成できる配列の数を見つける必要があります。 合計KのサイズNの配列の数は、$ \ dbinom {k-1}{n-1}$です。 これは、合計がkであるn個の要素を使用して形成できる数の配列を見つけるための簡単な式です。例を見てみましょう。 入力 n = 1 k = 2 出力 1 形成できる唯一の配列は[2]です。 入力 n = 2 k = 4 出力 3 形成できるアレイは、[1、3]、[2、2]、[3、1]です。 アルゴリズム 番号nとkを初期化します。 数値の階乗を計算する関数を記述します。 次に、
-
C++でnの累乗に累乗された2の桁数
数値の累乗は、言語が提供する反復乗算または関数を使用して計算できます。簡単なことです。 ここでは、nの累乗に累乗された2を見つける必要があります。そして、結果の桁数。いくつかの例を見てみましょう。 入力 5 出力 2 入力 10 出力 4 アルゴリズム 番号nを初期化します。 2 nの値を見つけます 。 log10(n)のセルは、数値nの桁数を示します。 見つけて返送してください。 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/stdc++.h> using namespace std; int getDigit
-
C++のa^bの桁数
数値の累乗は、言語が提供する反復乗算または関数を使用して計算できます。簡単なことです。 ここで、私たちはパワーbに上げられたものを見つけなければなりません。そして、結果の桁数。いくつかの例を見てみましょう。 入力 a = 5 b = 2 出力 2 入力 a = 7 b = 6 出力 6 アルゴリズム 番号aとbを初期化します。 a bの値を見つける 。 log10(n)のセルは、数値nの桁数を示します。 見つけて返送してください。 実装 以下は、C++での上記のアルゴリズムの実装です #include <bits/stdc++.h> using n
-
C++で指定された4桁で構成されるn番目の数字の桁数
与えられた4桁の1、2、3、4で構成されるn番目の数字の桁数を見つける必要があります。 上記の4桁のシリーズは次のとおりです 1、2、3、4、11、12、13、14、21、22、23、24 ... 上記のシリーズからn番目の数字の桁数を見つける必要があります。パターンを注意深く観察すると、次の点がわかります。 1桁の数字が4つあります。 2桁の数字が16個あります。 パターンは4の累乗として続きます。 例を見てみましょう 入力 7 出力 2 シリーズの7番目の数字は13で、その中の桁数は2です。 アルゴリズム 番号nを初期化します。 2つの変数を
-
C++で数値を3で割り切れる数にするために削除する桁数
文字列で数字が与えられます。 3で割り切れるには、削除する必要のある桁数を見つける必要があります。 最大2桁を削除することで、数値を除算できます。したがって、3で割り切れる数を削除する最大桁数は2です。 いくつかの例を見てみましょう。 入力 92 出力 1 2を削除して、3で割り切れるようにすることができます。 入力 999 出力 0 与えられた数自体は3で割り切れる。 アルゴリズム 文字列で数値を初期化します。 数の合計を求めます。 合計が3で割り切れる場合は、0を返します。 合計が3で割り切れず、数値の長さが1の場合、3で割り切れることはで
-
C++の行列の変更された平均よりも大きい要素の数
行列の修正平均は次のように定義されます... (sum(row-wise min)+ sum(column-wise max))/(row_size + column_size) 例を見てみましょう。 1 2 3 4 5 6 7 8 9 平均=(sum(1 + 4 + 7)+ sum(7 + 8 + 9))/(3 + 3) 最初に平均を見つけてから、平均よりも大きい要素の数を数える必要があります。 上記の例をとると、カウントとして3が得られます。 6である平均よりも大きい3つの要素があります。 アルゴリズム マトリックスを初期化します。 行ごとの最小要素の合計を求めます。
-
C++の特定のサブアレイ内の特定の数以下の要素の数
番号とサブ配列の下限と上限のインデックスが与えられます。指定された数以下の要素の数を数える必要があります。例を見てみましょう。 入力 arr = [1, 2, 3, 4, 5, 6, 7, 8] k = 4 lower = 0 upper = 5 出力 4 インデックス0と5の間には、4以下の4つの要素があります。 アルゴリズム 配列、番号、およびサブ配列のインデックスを初期化します。 カウントを0に初期化します。 サブアレイの下位インデックスからサブアレイの上位インデックスまで反復するループを記述します。 現在の要素が指定された数以下の場合は、カウントを増や
-
C++でBSTのプレオーダートラバーサルを使用したルートよりも小さい要素の数
事前注文トラバーサルの結果が表示されます。ルートよりも小さい要素の数を見つける必要があります。 プレオーダートラバーサルの最初の要素は、BSTのルートです。例を見てみましょう。 入力 preorder_result = [5, 4, 2, 1, 7, 6, 8, 9] 出力 3 ルートよりも小さい要素が3つあります。ルートは5です。 アルゴリズム 事前注文の結果を配列で初期化します。 最初の要素、つまりBSTのルートを変数に格納します。 事前注文結果の2番目の要素から繰り返すループを記述します。 すべての要素をルートと比較します。 現在の要素がルート
-
C++の数字列の偶数部分文字列の数
数字の文字列が与えられた場合、その中の部分文字列の数を見つける必要があります。例を見てみましょう。 入力 num = "1234" 出力 6 指定された文字列から形成できる偶数の部分文字列は 2 12 4 34 234 1234 アルゴリズム 文字列を数字で初期化します。 カウントを0に初期化します。 文字列を繰り返し処理します。 文字0を引いて、現在の桁を取得します 現在の文字の数字から。 桁が偶数かどうかを確認してください。 現在の桁が偶数の場合は、そのインデックスに1を加えたものをカウントに追加します。 カウントを
-
バイナリ文字列を交互にするためのフリップの数-C++で1を設定します
バイナリ文字列「10011」を指定したとします。代替のバイナリ文字列を作成するには、「10101」として最低2文字を反転する必要があります。 代替文字列には2つの可能性があります。 0または1で始まります。2つの選択肢をチェックし、両方に必要なフリップの数を数えます。 そして、両方の最小値を返します。例を見てみましょう。 入力 binary = "10011" 出力 2 文字列を0で始める場合、3回反転する必要があります。また、文字列を1で始める場合は、2回反転する必要があります。最小値は2です。 アルゴリズム バイナリ文字列を初期化します。 1から始まる
-
C++でN個の磁石から形成された磁石のグループの数
数字1 0 に対して、正極を表します 負極を表します。 磁石は10として両方の極を持ちます または01。 互いに引き合う磁石でグループを形成することができます。異なる極が向かい合っている磁石は同じグループになります。 ここでは、N個の磁石が与えられています。あなたは彼らと一緒に形成できるグループの数を知る必要があります。 2つの異なる磁石が並んでいるときはいつでも、新しいグループを形成します。その場合は、グループの数を増やしてください。 例を見てみましょう。 入力 magnets = ["10", "01", "01",