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

C++でxとのXORがxより大きい小さい値をカウントします


整数が与えられます。たとえば、xとタスクは、xよりも小さい数値をカウントすることです。xとのXORは、XOR値よりも大きい値になります。

XOR演算の真理値表を以下に示します

A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0

入力 − int x =11

出力 − xとのXORがxより大きい小さい値の数は− 4

説明

xは11として与えられます。これは、x未満の数のxのXORを見つける必要があることを意味します。したがって、数値は1 XOR 11 <11(FALSE)、2 XOR 11 <11(FALSE)、3 XOR 11 <11(FALSE)、4 XOR 11> 11(TRUE)、5 XOR 11> 11(TRUE)、6です。 XOR 11> 11(TRUE)、7 XOR 11> 11(TRUE)、8 XOR 11 <11(FALSE)、9 XOR 11 <11(FALSE)、10 XOR 11 <11(FALSE)。

入力 -:int x =12

出力 − xとのXORがxより大きい小さい値の数は− 11

説明

xは12として与えられます。これは、x未満の数のxのXORを見つける必要があることを意味します。したがって、数値は1 XOR 12> 12(TRUE)、2 XOR 12> 12(TRUE)、3 XOR 12> 12(TRUE)、4 XOR 12 <12(FALSE)、5 XOR 12 <12(FALSE)、6です。 XOR 12 <12(FALSE)、7 XOR 12 <12(FALSE)、8 XOR 12 <12(FALSE)、9 XOR 12 <12(FALSE)、10 XOR 12 <12(FALSE)、11 XOR 12 <12( FALSE)。

以下のプログラムで使用されているアプローチは次のとおりです

  • 整数要素を入力し、xという名前の変数に格納します。

  • numの値を関数に渡してさらに処理します

  • 結果を格納する一時変数カウントとnumという名前の変数を作成し、1に設定します。

  • x!=0

    までループを開始します
  • ループ内で、IF x%2 ==0を確認し、カウントをカウント+数値として設定します

  • numをnum*2として設定し、xをx/2として設定します

  • カウントを返す

  • 結果を印刷する

#include
using namespace std;
int XOR_smaller(int x){
   int count = 0;
   int num = 1;
   while (x != 0){
      if (x%2 == 0){
         count = count + num;
      }
      num = num*2;
      x = x/2;
   }
   return count;
}
int main(){
   int x = 20;
   cout<<"Count of smaller values whose XOR with x is greater than x are: "<<XOR_smaller(x);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of smaller values whose XOR with x is greater than x are: 11

  1. C++で指定されたXORを持つすべてのペアをカウントします

    このチュートリアルでは、指定されたXORのペアの数を見つけるプログラムについて説明します。 このために、配列と値が提供されます。私たちのタスクは、XORが指定された値に等しいペアの数を見つけることです。 例 #include<bits/stdc++.h> using namespace std; //returning the number of pairs //having XOR equal to given value int count_pair(int arr[], int n, int x){    int result = 0;   &

  2. C++でbよりも大きいプレフィックス

    この問題では、strをn回追加することによって文字列が作成されるように、aとbおよび整数Nのみを含む文字列strが与えられます。私たちのタスクは、aの数がbの数よりも多い部分文字列の総数を出力することです。 問題を理解するために例を見てみましょう Input: aab 2 Output: 9 Explanation: created string is aabaab. Substrings with count(a) > count(b) : ‘a’ , ‘aa’, ‘aab’, ‘aaba&rsquo