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++での上記のアルゴリズムの実装です
#include <bits/stdc++.h> using namespace std; int getTheResult(int x) { return (x << 1) + x + (x >> 1); } int main() { int n = 10; cout << getTheResult(n) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
35
-
C++で指定された条件でグリッドに8つの数字を入力します
1、2、3、4、5、6、7、8を、指定された図の8つの円に配置するとします。このようにして、シーケンス内で隣接する番号に隣接する番号はありません。 したがって、入力が次のような場合 0 - 1 - 1 0 - 1 - 1 - 1 - 1 0 - 1 - 1 0 その場合、出力は次のようになります これを解決するには、次の手順に従います- N:=3、M:=4 考慮されていません:=-1 関数present_in_grid()を定義します。これには、grid [N] [M]、num、が必要です。
-
C++で指定された値を持つ葉を削除する
二分木と整数のターゲットがあるとすると、値のターゲットを持つすべてのリーフノードを削除する必要があります。親ノードがリーフノードになり、値ターゲットを持つ場合、値ターゲットを持つリーフノードを削除すると、それも削除する必要があることに注意する必要があります(できなくなるまでそれを続ける必要があります)。したがって、ツリーが以下のようになり、ターゲットが2の場合、最終的なツリーは最後のツリーのようになります- これを解決するには、次の手順に従います- remLeaf()と呼ばれる再帰メソッドを定義します。これにより、ルートとターゲットが取得されます ルートがnullの場合、n