C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で指定された範囲からの最大ビットごとのANDペア


問題の説明

範囲[L、R]が与えられた場合、タスクは、L≤X

L=1およびR=10の場合、最大ビット単位AND値は8であり、次のように形成できます-

1000 # Binary representation of 8
Bitwise AND
1001 # Binary representation of 9
----
1000 # Final result

アルゴリズム

LからRまで繰り返し、可能なすべてのペアについてビット単位のANDをチェックし、最後に最大値を出力します

例を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
int getMaxBitwiseAndValue(int L, int R) {
   int maxValue = L & R;
   for (int i = L; i < R; ++i) {
      for (int j = i + 1; j <= R; ++j) {
         maxValue = max(maxValue, (i & j));
      }
   }
   return maxValue;
}
int main() {
   int L = 1, R = 10;
   cout << "Maximum value = " << getMaxBitwiseAndValue(L, R) << endl;
   return 0;
}

出力

Maximum value = 8

  1. C++での未知数の特定の製品からの最大GCD

    2つの整数NとPがあるとします。PはN個の未知の整数の積です。それらの整数のGCDを見つける必要があります。同じ結果が得られる整数の異なるグループが存在する可能性があります。ここでは、すべての可能なグループの中で最大であるGCDを作成します。 N =3、P =24とすると、異なるグループは{1、1、24}、{1、2、12}、{1、3、8}、{1、4、6}、{2 、2、6}、{2、3、4}。 GCDは1、1、1、1、2、1です。したがって、ここで答えは2です。 私たちが好きなテクニックは、gがa 1のGCDであると仮定します 、a 2 、…a n 。その場合、aiはgの倍数であり、P

  2. C++で指定されたGCDとLCMのペアを検索します

    このセクションでは、指定されたGCD値とLCM値を使用してペアの数を取得する方法を説明します。 GCDとLCMの値が2と12であると仮定します。これで、可能な数値のペアは(2、12)、(4、6)、(6、4)、および(12、2)になります。したがって、私たちのプログラムはペアの数を見つけます。それは4です。 この問題を解決するための手法を理解するためのアルゴリズムを見てみましょう。 アルゴリズム countPairs(gcd, lcm): Begin    if lcm is nit divisible by gcd, then       r