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

นับคู่ที่ถูกต้องในอาร์เรย์ที่ตรงตามเงื่อนไขที่กำหนดใน C++


เราได้รับอาร์เรย์ arr[] ขององค์ประกอบ N เป้าหมายคือการหาจำนวนคู่ที่ถูกต้องทั้งหมด (Arr[i],Arr[j]) ที่เป็นไปตามเงื่อนไขบางประการ คู่ Arr[i],Arr[j] ไม่ถูกต้องหาก −

  • Arr[i]==Arr[j]
  • Arr[i]+Arr[j] เท่ากัน
  • i+j<120

หมายเหตุArr[i],Arr[j] และ Arr[j],Arr[i] จะถูกนับเป็นหนึ่งคู่ คู่ที่ถูกต้องมี i!=j มาทำความเข้าใจกับตัวอย่างกัน

อินพุต

Arr[]= { 3,2,1,2,4,3 } N=4

ผลลัพธ์

Count of valid pairs: 2

คำอธิบาย

คู่ที่ถูกต้องคือ −

Arr[0] & Arr[4] → (3,3) here Arr[i]==Arr[j] & 3+3 is even also i!=j and i+j<120
Arr[1] & Arr[3] → (2,2) here Arr[i]==Arr[j] & 2+2 is even also i!=j and i+j<120

อินพุต

Arr[]= { 1,2,3,4,5,6 } N=6

ผลลัพธ์

Count of valid pairs: 0

คำอธิบาย

ไม่มีการซ้ำซ้อนขององค์ประกอบ ไม่มีประเภทคู่ ( a,a ) ที่เป็นไปได้โดยที่ i!=j.

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

  • เราใช้อาร์เรย์จำนวนเต็ม Arr[] ที่เริ่มต้นด้วยตัวเลขสุ่ม
  • หาตัวแปร n ซึ่งเก็บความยาวของ Arr[].
  • Function countPairs(int arr[], int n) รับอาร์เรย์ความยาวเป็นอินพุตและส่งกลับคู่ที่ถูกต้องและตรงตามเงื่อนไขที่ต้องการ
  • อาร์เรย์การเคลื่อนที่โดยใช้สองลูปสำหรับแต่ละองค์ประกอบของคู่
  • วงนอกจาก 0<=i
  • คำนวณผลรวมของ arr[i], arr[j] assum=(arr[i]+aar[j])
  • เพื่อตรวจสอบว่าคู่นั้นถูกต้องหรือไม่ เปรียบเทียบว่า i!=j และ sum%2==0 ยัง i+j<120
  • ตรวจสอบดูว่า arr[i]==arr[j] หรือไม่ จำนวนที่เพิ่มขึ้น
  • เมื่อสิ้นสุดการวนซ้ำทั้งหมดจะมีจำนวนคู่ที่ถูกต้องทั้งหมด
  • คืนค่าการนับตามผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int countPairs(int arr[], int n){
   int count=0;
   for(int i=0;i<n;i++){
      for(int j=i+1;j<n;j++) //j=i+1 we don't have to check i!=j{
         int sum=arr[i]+arr[j];
         //valid pairs have i!=j
         if( sum%2==0 && i+j<120){
            if( arr[i]==arr[j] ) //valid pair{
               count++;
               cout<<endl<<" a:"<<arr[i]<<"b: "<<arr[j];
            }
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {1,2,3,2,4,1,4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout <<endl<<"Valid pairs in array:"<<countPairs(arr, n);
   return 0;
}

ผลลัพธ์

Valid pairs in array:
a:1b: 1
a:2b: 2
a:4b: 43