C++でビット単位または最大値未満のペアをカウントします
整数配列が与えられ、タスクは、与えられた配列値を使用して形成できるペアの総数をカウントし、ペアに対するOR演算が次の値になるようにすることです。指定されたペアのMAX値未満です。
OR演算の真理値表を以下に示します
A | B | AVB |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
入力 − int arr [] ={2、5、1、8、9}
出力 −ビット単位のORがMax未満のペアの数は− 3
X | Y | X V Y |
2 | 5 | 7> 5 =FALSE |
2 | 1 | 3> 2 =FALSE |
2 | 8 | 10> 8 =FALSE |
2 | 9 | 11> 9 =FALSE |
5 | 1 | 5 =5 TRUE |
5 | 8 | 13> 8 =FALSE |
5 | 9 | 13> 9 =FALSE |
1 | 8 | 9> 8 =FALSE |
1 | 9 | 10> 9 =FALSE |
8 | 9 | 9 =9 =TRUE |
-
整数要素の配列を入力してペアを形成します
-
配列のサイズを計算し、さらに処理するためにデータを関数に渡します
-
一時変数カウントを作成して、ペアの中でMAX値以下の値を持つOR演算で形成されたペアを格納します
-
配列のサイズ1までiから0までのループFORを開始します
-
ループ内で、配列のサイズになるまでjからi+1までの別のループFORを開始します
-
ループ内で、IF arr[i]|を確認します。 arr [j] <=max(arr [i]、arr [j])次に、カウントを1ずつ増やします
-
カウントを返す
-
結果を印刷します。
例
#include <bits/stdc++.h> using namespace std; //Count pairs with bitwise OR less than Max int Pair_OR(int arr[], int size){ int count = 0; for (int i = 0; i lt; size - 1; i++){ for (int j = i + 1; j lt; size; j++){ if ((arr[i] | arr[j]) lt;= max(arr[i], arr[j])){ count++; } } } return count; } int main(){ int arr[] = { 4, 8, 9, 10, 23}; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of pairs with bitwise OR less than Max are: "<<Pair_OR(arr, size); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of pairs with bitwise OR less than Max are − 3
-
C++でkに等しい差を持つすべての異なるペアをカウントします
このチュートリアルでは、差がkに等しい個別のペアを見つけるプログラムについて説明します。 このために、整数配列と値kが提供されます。私たちのタスクは、差がkであるすべての個別のペアをカウントすることです。 例 #include<iostream> using namespace std; int count_diffK(int arr[], int n, int k) { int count = 0; //picking elements one by one for (int i = 0; i <
-
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