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

จำนวนสี่เหลี่ยมและสี่เหลี่ยมที่เป็นไปได้พร้อมชุดองค์ประกอบที่กำหนดใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ของจำนวนเต็ม N ซึ่งแสดงถึงความยาวของแท่ง n งานของเราคือพิมพ์จำนวนสี่เหลี่ยมและสี่เหลี่ยมที่สามารถสร้างได้จากแท่งที่มีความยาวที่กำหนด

มาดูตัวอย่างทำความเข้าใจปัญหากัน

ป้อนข้อมูล − อาร์เรย์ ={5, 5, 7, 7, 1, 4}

ผลลัพธ์ − 1

คำอธิบาย − สี่เหลี่ยมที่มีด้าน 5 5 7 7

เพื่อแก้ปัญหานี้ เราจะต้องตรวจสอบว่าสี่เหลี่ยมและสี่เหลี่ยมเป็นไปได้หรือไม่

ทีนี้ ในการสร้างสี่เหลี่ยมจัตุรัสหรือสี่เหลี่ยม ควรมีแท่งไม้สองอันที่มีความยาวเท่ากัน 2 สำหรับสี่เหลี่ยมและ 4 สำหรับสี่เหลี่ยม ในอาร์เรย์ของเรา เราจะต้องตรวจสอบไม้ที่มีความยาวเท่ากัน เพื่อให้การค้นหานี้ง่ายขึ้น เราจะจัดเรียงอาร์เรย์แล้วค้นหาคู่ และครึ่งหนึ่งของจำนวนคู่ทั้งหมดจะเป็นจำนวนสี่เหลี่ยมหรือสี่เหลี่ยมที่สามารถสร้างได้

ตัวอย่าง

โปรแกรมแสดงการใช้งานโซลูชันของเรา

#include <bits/stdc++.h>
using namespace std;
int countRecSqr(int sticks[], int n) {
   sort(sticks, sticks + n);
   int pairs = 0;
   for (int i = 0; i < n - 1; i++) {
      if (sticks[i]==sticks[i + 1]) {
         pairs++;
         i++;
      }
   }
   return pairs / 2;
}
int main() {
   int sticks[] = { 2, 2, 4, 4, 4, 4, 6, 6, 6, 7, 7, 9, 9 };
   int n = sizeof(sticks) / sizeof(sticks[0]);
   cout<<"The total number of squares or rectangles that can be created is ";
   cout<<countRecSqr(sticks, n);
   return 0;
}

ผลลัพธ์

The total number of squares or rectangles that can be created is 3