Trong bài toán này, chúng ta được cung cấp một mảng gồm N số nguyên biểu thị độ dài của n que tính. Nhiệm vụ của chúng ta là in ra số lượng hình chữ nhật và hình vuông có thể được tạo ra từ các que có độ dài cho trước.
Hãy lấy một ví dụ để hiểu vấn đề
Đầu vào - mảng ={5, 5, 7, 7, 1, 4}
Đầu ra - 1
Giải thích - một hình chữ nhật với các cạnh 5 5 7 7.
Để giải quyết vấn đề này, chúng tôi sẽ phải kiểm tra xem hình chữ nhật và hình vuông có được hay không.
Bây giờ, để tạo một hình vuông hoặc hình chữ nhật, cần có hai que cùng chiều dài, 2 que cho hình chữ nhật và 4 que cho hình vuông. Bây giờ, trong mảng của chúng ta, chúng ta sẽ phải kiểm tra các cặp que có cùng độ dài. Để việc tìm kiếm này trở nên dễ dàng, chúng tôi sẽ sắp xếp mảng và sau đó tìm các cặp và một nửa tổng số cặp sẽ là số hình vuông hoặc hình chữ nhật có thể được tạo.
Ví dụ
Chương trình cho thấy việc triển khai giải pháp của chúng tôi,
#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; }
Đầu ra
The total number of squares or rectangles that can be created is 3