C++でarr[i]* arr [j]> arr [i] + arr [j]となるようにペア(i、j)の数を数えます
n個の正の数の配列が与えられます。目標は、arr [i] * arr [j]> arr [i]のように順序対(i、j)をカウントすることです。 +arr[j]および0<=i
ペアの数ごとに2つのforループを使用して配列をトラバースします。次に、arr[i]とarr[j]の合計と積を計算します。積が合計増分カウントより大きい場合。
例を挙げて理解しましょう。
入力 − arr [] ={1,1,2,3} N =4
出力 −ペアの数− 1
説明 −有効なペアは−(2,3)
入力 − arr [] ={2,2,2} N =3
出力 −ペアの数− 0
説明 − 2*2と2+2の両方が4です。product>sum
正の数で初期化された整数配列arr[]を取ります。
Arr[]の長さを格納する変数nを取ります。
関数countPairs(int arr []、int n)は配列を受け取り、その長さを入力として受け取り、ペアの数をproduct>sumで出力します。
ペアの要素ごとに2つのforループを使用して配列をトラバースします。
0 <=i
arr [i] * arr [j]> arr [i] +arr[j]かどうかを確認します。 trueの場合はカウントをインクリメントします。
すべてのループの終わりに、カウントには、積>合計
結果としてカウントを返します。
上記のコードを実行すると、次の出力が生成されます-2*3=6 > 2+3=5
以下のプログラムで使用されているアプローチは次のとおりです
例
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int countPairs(int arr[], int n){
int count=0;
int sum=0;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(arr[i]*arr[j]>arr[i]+arr[j]) //condition
{ count++; }
}
}
return count;
}
int main(){
int arr[] = { 1,2,3,2 };
int len = sizeof(arr) / sizeof(int);
cout<<"Count of number of pairs :"<<countPairs(arr, len);
return 0;
}
出力
Count of number of pairs :2
-
C++で数値を除算する数値の桁数を検索します
番号が与えられていると仮定します。数を均等に分割する数の桁数を数える必要があります。数値が1012で、結果が3であるとします。1012を均等に分割する3桁の1、1、および2があります。 これを解決するために、モジュラス演算を使用して数値の各桁を見つけ、数値がその桁で割り切れるかどうかを確認します。割り切れる場合は、カウンターを増やします。数字が0の場合は、その数字を無視します。 例 #include<iostream> using namespace std; int countDivDigit(int num) { int c
-
C ++を使用して、XORが0になるような配列内のペアの数を見つけます。
n個の要素の配列があるとします。 XORが0になる配列内のペアの数を見つける必要があります。XORが0のペア(x、y)の場合、x=yです。これを解決するために、配列を並べ替えることができます。次に、2つの連続する要素が同じである場合は、カウントを増やします。すべての要素が同じである場合、最後のカウントはカウントされない場合があります。その場合、最後の要素と最初の要素が同じであるかどうかを確認し、同じである場合は、カウントを1つ増やします。 例 #include<iostream> #include<algorithm> using namespace std; in