指定された値よりも小さいAND、OR、およびXOR演算の最大値を見つけるCプログラム
2つの整数kとnが与えられていると仮定します。私たちのタスクは、3つの操作を実行することです。範囲nまでの数値のすべてのペア間のビット単位のAND、ビット単位のOR、およびビット単位のXOR。指定された値kよりも小さい任意の2組の数値の間で、3つの操作すべての最大値を返します。
したがって、入力がn =5、k =5の場合、出力は434になります。
5未満の数値のすべてのペア間のAND、OR、およびXOR演算の最大値は、それぞれ4、3、および4です。これらの操作の値は、指定された値kの値である5よりも小さいことがわかります。
これを解決するには、次の手順に従います-
- andMax:=0、またはMax =0、xorMax =0
- value1:=0、value2 =0、value3 =0
- iを初期化する場合:=1、i <=nの場合、更新(iを1つ増やす)、次のようにします。
- value1:=i AND j
- value2:=i OR j
- value3:=i XOR j
- value1>andMaxおよびvalue1
- andMax:=value1
- value2>orMaxおよびvalue2
- orMax:=value2
例
理解を深めるために、次の実装を見てみましょう-
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> void solve(int n, int k) { int andMax = 0, orMax = 0, xorMax = 0; int value1 = 0, value2 = 0, value3 = 0; for (int i = 1; i <= n; i++) { for (int j = i+1; j <= n; j++) { value1 = i & j; value2 = i | j; value3 = i ^ j; if (value1 > andMax && value1 < k) andMax = value1; if (value2 > orMax && value2 < k) orMax = value2; if (value3 > xorMax && value3 < k) xorMax = value3; } } printf("%d %d %d ", andMax, orMax, xorMax); } int main() { solve(5, 5); return 0; }
入力
5, 5
出力
4 3 4
-
Pythonの特定の二分木でBSTの最大合計値を見つけるプログラム
二分木が提供されていると仮定します。そのサブツリーに二分探索木(BST)が存在するかどうかを調べ、最大のBSTの合計を見つける必要があります。合計を求めるために、そのBSTの各ノードの値を加算します。合計値を出力として返します。 したがって、入力が次のような場合 その場合、出力は12になります。 与えられた二分木のBSTは-です ノードの合計=12。 これを解決するには、次の手順に従います- c:=0 m:=null 値:=0 関数recurse()を定義します。これはノードを取ります ノードがnullでない場合、 left_val:=recurse(ノード
-
リスト内のすべての値が指定された値より大きいかどうかを確認するPythonプログラム
リストが指定され、チェック値が指定されたら、指定された値より大きいすべての値をリストに表示します。 例 Input : A=[10, 20, 30, 40, 50] Given value=20 Output : No Input : A=[10, 20, 30, 40, 50] Given value=5 Output : Yes アルゴリズム Step 1: Create user input list. Step 2: Input checking value. Step 3: Traverse in the list using for loop Step 3.1: compare w