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

โค้ด C++ หาพื้นที่ที่กล่องใช้ในภาชนะ

สมมติว่าเรามี n คู่ของกล่องที่ต้องส่งในภาชนะรูปสี่เหลี่ยมจัตุรัส ความกว้างของคู่กล่องกำหนดเป็นคู่ (a, b) และให้ในอาร์เรย์ 'dimensions' หากเราวางความกว้างของกล่องขนานกัน เราต้องหาว่ากล่องจะใช้พื้นที่เท่าไหร่ในภาชนะ เราไม่สามารถซ้อนกล่องทับกันได้ เราต้องหาพื้นที่ขั้นต่ำที่จำเป็นสำหรับคู่กล่องทั้ง n คู่

เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 4, dimensions = {{2, 4}, {3, 6}, {2, 5}, {4, 6}} ผลลัพธ์จะได้:

64 25 36 16

ขั้นตอนการแก้ปัญหา

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:

res := 0 ในขณะที่ n ไม่เป็นศูนย์ ทำ:    a := ค่าแรกของ dimensions[n]    b := ค่าที่สองของ dimensions[n]    res := max(2 * min(a, b), max(a, b))    พิมพ์(res * res)    n := n - 1

ตัวอย่างโค้ด

ดูการนำไปใช้จริงด้านล่างเพื่อความเข้าใจที่ดียิ่งขึ้น:

#include <bits/stdc++.h> using namespace std; #define N 100 void solve(int n, vector<pair<int, int>> dimensions) {    int res = 0;    while(n--){       int a = dimensions[n].first;       int b = dimensions[n].second;       int res = max(2 * min(a, b), max(a, b));       cout<< res * res << endl;    } } int main() {    int n = 4;    vector<pair<int, int>> dimensions = {{2, 4}, {3, 6}, {2, 5}, {4, 6}};    solve(n, dimensions);    return 0; }

ข้อมูลนำเข้า

4, {{2, 4}, {3, 6}, {2, 5}, {4, 6}}

ข้อมูลส่งออก

64 25 36 16