C++ 中从 1 到 a 和 1 到 b 的数对中,和能被 N 整除的数对个数


给定一个整数数组,任务是计算可以使用给定数组值形成的总对数 (x, y),使得整数 x 的值小于 y。

输入 − int a = 2, b = 3, n = 2

输出 − 从 1 到 a 和 1 到 b 的数对中,和能被 N 整除的数对个数为 − 3

解释

Firstly, We will start from 1 to a which includes 1, 2
Now, we will start from 1 to b which includes 1, 2, 3
So the pairs that can be formed are (1,1), (1,2), (1, 3), (2, 1), (2, 2), (2, 3) and their respective
sum are 2, 3, 4, 3, 4, 5. The numbers 2, 4, 4 are divisible by the given N i.e. 2. So the count is 3.

输入 − int a = 4, b = 3, n = 2

输出 − 从 1 到 a 和 1 到 b 的数对中,和能被 N 整除的数对个数为 − 3

解释

Firstly, We will start from 1 to a which includes 1, 2, 3, 4
Now, we will start from 1 to b which includes 1, 2, 3
So the pairs that can be formed are (1,1), (1,2), (1, 3), (2, 1), (2, 2), (2, 3), (3,1), (3, 2), (3, 3), (4,
1), (4, 2), (4, 3) and their respective sum are 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7. The numbers 3, 3, 6,
6 are divisible by the given N i.e. 3. So the count is 4

下面程序中使用的算法如下

  • 输入整数变量 a、b 和 n,分别表示从 1 到 a、从 1 到 b,以及与 n 进行可除性比较。

  • 将所有数据传递给函数以进行进一步处理。

  • 创建一个临时变量 count 来存储数对。

  • 从 i 等于 0 开始,循环到 a。

  • 在循环内部,从 j 等于 0 开始,循环到 b。

  • 在循环内部,将 sum 设置为 i + j。

  • 在循环内部,检查 IF sum % n == 0,如果是,则将 count 加 1。

  • 返回 count。

  • 打印结果。

示例

 在线演示

#include <iostream>
using namespace std;
int Pair_a_b(int a, int b, int n){
   int count = 0;
   for (int i = 1; i <= a; i++){
      for (int j = 1; j <= b; j++){
         int temp = i + j;
         if (temp%n==0){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int a = 2, b = 20, n = 4;
   cout<<"Count of pairs from 1 to a and 1 to b whose sum is divisible by N are: "<<Pair_a_b(a, b, n);
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

Count of pairs from 1 to a and 1 to b whose sum is divisible by N are: 10

更新于: 2020-08-31

106 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告