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