计算其乘积以C ++数组形式存在的对

给我们一个整数类型元素的数组,任务是从给定数组中形成对,并计算该对中元素的乘积,并检查给定数组中是否存在给定乘积。

输入− int arr [] = {6,2,3,1,5,10}

输出-其乘积在同一数组中的对数为-7

说明-可以从给定数组形成的对是:(6,2),(6,3),(6,1),(6,5),(6,10),(2,3), (2,1),(2,5),(2,10),(3,1),(3,5),(3,10),(1,5),(1,10),(5 ,10)。所以在同一数组中具有给定乘积值的对是(2,3)等于6,(6,1)等于6,(3,1)等于3,(2,5)等于10,(1,5)等于5,(2,1)等于2,(1,10)等于10。

输入− int arr [] = {2,4,8,5,10}

输出-积在同一数组中的对的数量为-2

说明-可以从给定数组形成的对为:(2,4),(2,8),(2,5),(2,10),(4,8),(4,5), (4,10),(8,5),(8,10),(5,10)。因此,在同一数组中具有给定乘积值的对是(2,4)等于8,(5,2)等于10。

以下程序中使用的方法如下

解决给定问题的方法可以有多种,即幼稚方法和有效方法。因此,让我们首先来看一下幼稚的方法。

  • 输入一个整数元素数组并计算数组的大小并将数据传递给函数

  • 声明一个临时变量计数,以存储具有给定数组中可用乘积值的对数。

  • 从i到0的FOR循环开始直到数组大小

  • 在循环内部,从j到i + 1开始另一个循环,直到数组大小

  • 在循环内部,将乘积计算为arr [i] * arr [j]

  • 从k到0开始另一个循环,直到数组大小

  • 在K循环内,检查IF product = arr [k],然后将计数加1

  • 返回计数

  • 打印结果。

高效的方法

  • 输入一个整数元素数组并计算数组的大小并将数据传递给函数

  • 声明一个临时变量计数,以存储具有给定数组中可用乘积值的对数。

  • 创建设置为pro的STL类型的变量

  • 从i到0的FOR循环开始直到数组大小

  • 在循环内,在设置变量pro中插入arr [i]

  • 从i到0开始另一个循环,直到数组大小

  • 在循环内部,从j到i + 1开始另一个循环,直到数组大小

  • 将乘积设置为arr [i] * arr [j]

  • 检查IF pro.find(product)!= pro.end(),然后将计数加1

  • 返回计数

  • 打印结果。

示例(幼稚的方法)

#include <bits/stdc++.h>
using namespace std;
int product_pair(int arr[], int size){
   int product = 1;
   int count = 0;
   for(int i = 0 ; i<size ; i++){
      for(int j = i+1;j<size;j++){
         product = arr[i] * arr[j];
         for(int pro = 0 ; pro < size; pro++){
            if(product == arr[pro]){
               count++;
            }
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {6, 2, 3, 1, 5, 10};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of pairs whose products exist in same array are: "<<product_pair(arr,size);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Count of pairs whose products exist in same array are: 7

示例(有效方法)

#include<bits/stdc++.h>
using namespace std;
int product_pair(int arr[], int size){
   set< int > pro;
   int count = 0;
   int product = 1;
   for (int i = 0 ; i < size; i++){
      pro.insert(arr[i]);
   }
   for (int i = 0 ; i < size; i++){
      for (int j = i + 1; j < size ; j++){
         product = arr[i] * arr[j];
         if(pro.find(product) != pro.end()){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {6, 2, 3, 1, 5, 10};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of pairs whose products exist in same array are: "<<product_pair(arr,size);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Count of pairs whose products exist in same array are: 7