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

C ++でarr[i]がarr[j]で割り切れる、またはarr[j]がarr[i]で割り切れるようなペア(i、j)の数を数えます。


N個の要素の配列arr[]が与えられます。目標は、arr[i]がarr[j]で割り切れる、またはarr[j]がarr[i]とi!=jで割り切れるような、すべての有効なインデックスのペア(i、j)の数を見つけることです。

これを行うには、ペアの数ごとに2つのforループを使用して配列arr []をトラバースし、iの場合にarr [i]%arr [j] ==0またはarr[j]%arr [i]==0かどうかを確認します。 !=j。ペアの真の増分カウントの場合。

例を挙げて理解しましょう。

入力 − arr [] ={2,4,3,6} N =4

出力 −有効なペアの数− 3

説明 −有効なペアは−

Arr[0] & Arr[1] → (2,4) here 4%2==0 0!=1
Arr[0] & Arr[1] → (2,6) here 6%2==0 0!=3
Arr[2] & Arr[3] → (3,6) here 6%3==0 2!=3

入力 − arr [] ={2,5,7,9,11} N =5

出力 −有効なペアの数− 0

説明 −他を完全に分割する数はありません。ペアを形成することはできません。

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

  • 乱数で初期化された整数配列Arr[]を使用します。

  • Arr[]の長さを格納する変数nを取ります。

  • 関数countPairs(int arr []、int n)は配列を受け取り、その長さを入力として受け取り、有効で目的の条件を満たすペアを返します。

  • ペアの要素ごとに2つのforループを使用して配列をトラバースします。

  • 0 <=i

  • arr [i]%arr [j] ==0またはarr[j]%arr [i]==0かどうかを確認します。いずれかの条件が真の場合、カウントを1回インクリメントします。

  • すべてのループの終わりに、カウントには有効なペアの総数が含まれます

  • 結果としてカウントを返します。

#include <bits/stdc++.h>
using namespace std;
int countPairs(int arr[], int n){
   // Count of pairs
   int count = 0;
   for (int i = 0; i < n-1; i++){
      for (int j = i + 1; j < n; j++){
         if(arr[i]%arr[j]==0 || arr[j]%arr[i]==0)
            { count++; }
      }
   }
   return count;
}
int main(){
   int Arr[] = { 2,3,4,5,6 };
   int len = sizeof(Arr) / sizeof(Arr[0]);
   cout << "Count of number of pairs : "<< countPairs(Arr, len);
   return 0;
}

出力

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

Count of number of pairs : 3

  1. C++で数値を除算する数値の桁数を検索します

    番号が与えられていると仮定します。数を均等に分割する数の桁数を数える必要があります。数値が1012で、結果が3であるとします。1012を均等に分割する3桁の1、1、および2があります。 これを解決するために、モジュラス演算を使用して数値の各桁を見つけ、数値がその桁で割り切れるかどうかを確認します。割り切れる場合は、カウンターを増やします。数字が0の場合は、その数字を無視します。 例 #include<iostream> using namespace std;    int countDivDigit(int num) {    int c

  2. C ++を使用して、XORが0になるような配列内のペアの数を見つけます。

    n個の要素の配列があるとします。 XORが0になる配列内のペアの数を見つける必要があります。XORが0のペア(x​​、y)の場合、x=yです。これを解決するために、配列を並べ替えることができます。次に、2つの連続する要素が同じである場合は、カウントを増やします。すべての要素が同じである場合、最後のカウントはカウントされない場合があります。その場合、最後の要素と最初の要素が同じであるかどうかを確認し、同じである場合は、カウントを1つ増やします。 例 #include<iostream> #include<algorithm> using namespace std; in