เราได้รับอาร์เรย์ของจำนวนบวก 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)
ป้อนข้อมูล − 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] หรือไม่ นับเพิ่มถ้าเป็นจริง
เมื่อสิ้นสุดการวนซ้ำทั้งหมดจะมีจำนวนคู่ทั้งหมดที่มีผลลัพธ์> ผลรวม
ผลตอบแทนนับเป็นผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -2*3=6 > 2+3=5
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
ตัวอย่าง
#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