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

นับจำนวนคู่ (i, j) ที่ arr[i] หารด้วย arr[j] หรือ arr[j] หารด้วย arr[i] ใน C++


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

เราจะทำสิ่งนี้โดยสำรวจอาร์เรย์ arr[] โดยใช้ two for loops สำหรับแต่ละจำนวนคู่และตรวจสอบว่า arr[i]%arr[j]==0 หรือ arr[j]%arr[i]==0 เมื่อฉัน !=จ. หากเพิ่มจำนวนคู่จริง

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

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

ผลผลิต − จำนวนคู่ที่ถูกต้อง − 3

คำอธิบาย − คู่ที่ถูกต้องคือ −

Arr[0] & Arr[1] → (2,4) here 4%2==0 0!=1
Arr[0] & Arr[1] → (2,6) here 6%2==0 0!=3
Arr[2] & Arr[3] → (3,6) here 6%3==0 2!=3

ป้อนข้อมูล − Arr[]={ 2,5,7,9,11 } N=5

ผลผลิต − จำนวนคู่ที่ถูกต้อง − 0

คำอธิบาย - ไม่มีเลขใดมาหารกันทั้งหมด ไม่สามารถสร้างคู่ได้

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

  • เราใช้อาร์เรย์จำนวนเต็ม Arr[] ที่เริ่มต้นด้วยตัวเลขสุ่ม

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

  • ฟังก์ชัน countPairs(int arr[], int n) รับอาร์เรย์ ความยาวเป็นอินพุตและส่งกลับคู่ที่ถูกต้องและตรงตามเงื่อนไขที่ต้องการ

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

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

  • ตรวจสอบว่า arr[i]%arr[j]==0 หรือ arr[j]%arr[i]==0 การเพิ่มขึ้นจะนับหนึ่งครั้งหากเงื่อนไขข้อใดข้อหนึ่งเป็นจริง

  • เมื่อสิ้นสุดการวนซ้ำทั้งหมดจะมีจำนวนคู่ที่ถูกต้องทั้งหมด

  • คืนค่าการนับเป็นผลลัพธ์

ตัวอย่าง

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

ผลลัพธ์

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

Count of number of pairs : 3