C++ 中数组中可整除对的数量


给定一个任意大小的包含整数元素的数组,任务是计算数组中对的数量,使得一对中的一个元素可以整除另一对中的元素。

数组是一种数据结构,可以存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型变量的集合更有用。

例如

Input − int arr[] = {1, 2, 3, 6}
Output − count is 4

解释 - (1,2), (1,3), (1,6) 和 (3,6) 是一对,其中一对中的一个元素可以整除另一对,因为 1 可以整除任何数字,并且 3 可以整除 6。所以数量是 4。

Input − int arr[] = {2, 5, 10}
Output − count is 2

解释 - (2, 10) 和 (5,10) 是一对,其中一对中的一个元素可以整除另一对,因为 2 可以整除 10,并且 5 可以整除 10。所以数量是 2。

下面程序中使用的解决方法如下

  • 创建一个数组,例如 arr[]

  • 使用 length() 函数计算数组的长度,该函数将根据数组中的元素返回一个整数值。

  • 取一个临时变量,它将存储仅存在于数组中的元素的数量。

  • 使用 for 循环,从 i 为 0 开始,到 i 小于数组大小结束

  • 在循环内部,使用另一个循环,从 j 为 i+1 开始,到 j 小于大小结束

  • 在循环内部,检查 arr[i] % arr[j] = 0 或 arr[j] % arr[i] = 0,如果是,则递增计数

  • 返回计数

  • 打印结果。

示例

 实时演示

#include <iostream>
using namespace std;
int divisibles(int a[], int size){
   int result = 0;
   // Iterating through all pairs
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         if (a[i] % a[j] == 0 || a[j] % a[i] == 0){
            result++;
         }
      }
   }
   return result;
}
int main(){
   int a[] = {1, 4, 7, 8, 9};
   int size = sizeof(a) / sizeof(a[0]);
   cout <<"count is " <<divisibles(a, size);
   return 0;
}

输出

如果我们运行上述代码,我们将得到以下输出:

count is 5

更新于: 2020年5月15日

210 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告