เราได้รับอาร์เรย์ของจำนวนบวก 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