在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()函数将根据数组中的元素返回整数值来计算数组的长度。

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

  • 当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;
   //遍历所有对
   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