Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Số lượng hình chữ nhật và hình vuông có thể tạo từ tập que di truyền trong C++


Trong bài toán này, cho mảng N số nguyên biểu thị độ dài N que. Nhiệm vụ in số lượng hình chữ nhật và hình vuông có thể tạo từ các que cho trước.

Ví dụ minh họa:

Đầu vào - mảng = {5, 5, 7, 7, 1, 4}

Kết quả - 1

Giải thích - Hình chữ nhật cạnh 5, 5, 7, 7.

Để giải bài toán, kiểm tra có thể tạo hình chữ nhật/vuông không.

Để tạo hình vuông hoặc chữ nhật, cần hai que cùng độ dài (2 cho chữ nhật, 4 cho vuông). Kiểm tra các cặp que cùng độ dài. Sắp xếp mảng để tìm cặp dễ dàng. Nửa số cặp tổng cộng sẽ là số hình chữ nhật/vuông có thể tạo.

Chương trình minh họa

#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 << "Tổng số hình vuông hoặc chữ nhật có thể tạo là "; 
    cout << countRecSqr(sticks, n); 
    return 0; 
}

Kết quả

Tổng số hình vuông hoặc chữ nhật có thể tạo là 3