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

C ++で(i + j)がAとBの両方で割り切れるようにペア(i、j)をカウントします


変数N、M、A、およびBが与えられます。目標は、正の数(i、j)の順序対を見つけて、それらの合計がAとBの両方で割り切れるようにすることです。1<=i<=Nおよび1<=j<=M。

iとjの2つのループを使用してトラバースします。合計(i + j)%A ==0 &&(i + j)%B==0の場合。インクリメントカウント。

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

入力

N = 5, M = 10, A = 2, B = 3;

出力

Ordered pairs (i,j) where (i+j) is divisible by both A & B: 9

説明

Pairs will be (1,5) (2,4) (2,10) (3,3) (3,9) (4,2) (4,8) (5,1) (5,7). Total pairs is 9.

入力

N = 10, M = 10, A = 10, B = 11;

出力

Ordered pairs (i,j) where (i+j) is divisible by both A & B: 0

説明

No such pairs possible.

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

  • 整数N、M、A、Bを取ります。

  • 関数sumDivisible(int n、int m、int a、int b)はすべての変数を受け取り、合計がAとBで割り切れる順序対の数を返します。

  • ペアの初期変数カウントを0とします。

  • 2つのforループを使用してトラバースし、iとjを見つけます。

  • i=1からi<=n、j=1からj<=mまで。

  • (i + j)%a ==0または(i + j)%b==0かどうかを確認します。

  • 真のインクリメントカウントの場合。

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

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

#include <bits/stdc++.h>
using namespace std;
int sumDivisible(int n,int m,int a,int b){
   int count = 0;
   for (int i = 1; i <= n; i++){
      for(int j = 1; j <= m; j++){
         if((i+j)%a==0 && (i+j)%b==0)
            { count++; }
      }
   }
   return count;
}
int main(){
   int N = 50, M = 100, A = 5, B = 10;
   cout <<"Ordered pairs (i,j) where (i+j) is divisible by both A & B: "<<sumDivisible(N,M,A,B);
   return 0;
}

出力

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

Ordered pairs (i,j) where (i+j) is divisible by both A & B: 500

  1. C ++でK%p =0およびq%K=0となる最小数Kを見つけます

    2つの整数PとQがあるとします。KmodP=0とQmodK =0のように、最小の数Kを見つける必要があります。それ以外の場合は-1を出力します。したがって、PとQが2と8の場合、Kは2になります。2mod2 =0、8モード2=0として。 Kを可能にするには、QをPで割り切れる必要があります。したがって、P mod Q =0の場合はPを出力し、そうでない場合は-1を出力します。 例 #include<iostream> using namespace std; int getMinK(int p, int q) {    if (q % p == 0) &nbs

  2. C ++でa%b =kとなるような配列内のすべてのペア(a、b)を検索します

    配列Aがあるとすると、その配列から、a%b =kとなるようにすべてのペア(a、b)を取得する必要があります。配列がA=[2、3、4、5、7]、k =3であるとすると、ペアは(7、4)、(3、4)、(3、5)、(3、7)になります。 これを解決するために、リストをトラバースして、指定された条件が満たされているかどうかを確認します。 例 #include <iostream> using namespace std; bool displayPairs(int arr[], int n, int k) {    bool pairAvilable = true;