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

โปรแกรมคำนวณพื้นที่รวมของสี่เหลี่ยมสองรูปใน Python

หาพื้นที่รวมของสี่เหลี่ยมสองรูปที่ขนานกับแกนในระนาบ 2D แต่ละรูปกำหนดโดยมุมซ้ายล่าง (A,B) และมุมขวาบน (C,D) สำหรับรูปแรก และ (E,F), (G,H) สำหรับรูปที่สอง

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

  1. คำนวณพื้นที่แต่ละรูป: width1 = |C-A|, height1 = |D-B| และ width2 = |G-E|, height2 = |H-F|
  2. พื้นที่รวม = width1*height1 + width2*height2
  3. ตรวจสอบการทับซ้อน: หากไม่ทับซ้อน (G<A หรือ E>C หรือ F>D หรือ H<B) ให้คืนพื้นที่รวม
  4. หากทับซ้อน: หาพื้นที่ทับซ้อนโดยหาพิกัดมุมซ้ายล่าง (p,q) = (max(A,E), max(B,F)) และมุมขวาบน (r,s) = (min(C,G), min(D,H)) แล้วลบพื้นที่ทับซ้อนออกจากพื้นที่รวม

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

def solve(A, B, C, D, E, F, G, H):
    width1 = abs(C - A)
    height1 = abs(D - B)
    width2 = abs(G - E)
    height2 = abs(H - F)
    area = width1 * height1 + width2 * height2
    if G < A or E > C or F > D or H < B:
        return area
    p = max(A, E)
    q = max(B, F)
    r = min(C, G)
    s = min(D, H)
    overlap = abs(r - p) * abs(s - q)
    return area - overlap

# ทดสอบ
A, B, C, D = -3, 0, 3, 4
E, F, G, H = 0, -1, 9, 2
print(solve(A, B, C, D, E, F, G, H))  # ผลลัพธ์: 45

อินพุตตัวอย่าง

-3, 0, 3, 4, 0, -1, 9, 2

เอาต์พุตตัวอย่าง

45