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

หาจำนวนสี่เหลี่ยม 2x1 ที่วางได้ในสี่เหลี่ยม n x m ใน Python

จำนวน Domino 2x1 ที่วางได้ในกริด n x m

วางสี่เหลี่ยม 2x1 (Domino) ให้มากที่สุดในกริด n x m โดยไม่ทับซ้อนและอยู่ภายในขอบเขตทั้งหมด

สูตร:

  • ถ้า n คู่: (n/2) * m
  • ถ้า m คู่: (m/2) * n
  • ถ้าทั้งคู่คี่: (n*m - 1) / 2 (เหลือ 1 ช่องว่าง)

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


def count_rect(n, m):
    if n % 2 == 0:
        return (n // 2) * m
    elif m % 2 == 0:
        return (m // 2) * n
    return (n * m - 1) // 2

print(count_rect(3, 3))  # 4