Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับจำนวนคู่ (i, j) ที่ arr[i] * arr[j]> arr[i] + arr[j] ใน C++


เราได้รับอาร์เรย์ของจำนวนบวก n ตัว เป้าหมายคือการนับคู่ที่เรียงลำดับ (i,j) เพื่อให้ arr[i]*arr[j]> arr[i] +arr[j] และ 0<=i

เราจะสำรวจอาร์เรย์โดยใช้สองลูปสำหรับจำนวนคู่แต่ละคู่ ตอนนี้คำนวณผลรวมและผลิตภัณฑ์ของ arr[i] และ arr[j] หากสินค้ามีค่ามากกว่าส่วนเพิ่มรวม

มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล − Arr[]={ 1,1,2,3 } N=4

ผลผลิต − จำนวนคู่ − 1

คำอธิบาย − คู่ที่ถูกต้องเท่านั้นคือ − (2,3)

2*3=6 > 2+3=5

ป้อนข้อมูล − Arr[]={ 2,2,2 } N=3

ผลผลิต − จำนวนคู่ − 0

คำอธิบาย − ทั้ง 2*2 และ 2+2 เท่ากับ 4 ไม่มีคู่ที่ product>sum

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้อาร์เรย์จำนวนเต็ม arr[] ที่เริ่มต้นด้วยจำนวนบวก

  • ใช้ตัวแปร n ซึ่งเก็บความยาวของ Arr[].

  • ฟังก์ชัน countPairs(int arr[], int n) รับอาร์เรย์ ความยาวเป็นอินพุต และพิมพ์จำนวนคู่ด้วย product>sum

  • Traverse array ใช้ two for loops สำหรับแต่ละองค์ประกอบของคู่

  • วงนอกจาก 0<=i

  • ตรวจสอบว่า arr[i]*arr[j]>arr[i]+arr[j] หรือไม่ นับเพิ่มถ้าเป็นจริง

  • เมื่อสิ้นสุดการวนซ้ำทั้งหมดจะมีจำนวนคู่ทั้งหมดที่มีผลลัพธ์> ผลรวม

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int countPairs(int arr[], int n){
   int count=0;
   int sum=0;
   for(int i=0;i<n-1;i++){
      for(int j=i+1;j<n;j++){
         if(arr[i]*arr[j]>arr[i]+arr[j]) //condition
            { count++; }
      }
   }
   return count;
}
int main(){
   int arr[] = { 1,2,3,2 };
   int len = sizeof(arr) / sizeof(int);
   cout<<"Count of number of pairs :"<<countPairs(arr, len);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Count of number of pairs :2