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

การวางโดมิโนบนกระดานใน Python

ภาพรวม

โจทย์หาจำนวนโดมิโนขนาด 1×2 สูงสุดที่วางบนกระดาน n×m ได้โดยไม่ทับซ้อนและไม่ล้นขอบ เนื่องจากโดมิโนแต่ละอันครอบคลุม 2 ช่อง คำตอบคือพื้นที่หาร 2 ปัดเศษทิ้ง

สูตร

max_dominos = (n × m) // 2

ตัวอย่าง

อินพุต: n=5, m=3

พื้นที่ = 15, โดมิโนสูงสุด = 15 // 2 = 7

โค้ด Python

class Solution:
    def solve(self, n, m):
        t = n * m
        return t // 2

ob = Solution()
print(ob.solve(5, 3))

อธิบาย

  • กระดาน 5×3 มี 15 ช่อง
  • โดมิโน 1×2 ครอบ 2 ช่อง
  • วางได้สูงสุด 7 อัน (ครอบ 14 ช่อง) เหลือ 1 ช่องว่าง
  • ใช้ integer division (//) เพื่อปัดเศษทิ้ง

ขยายความ

หากโดมิโนเป็นขนาด a×b สูตรทั่วไปคือ (n*m) // (a*b) แต่ต้องพิจารณาการจัดวางจริงด้วย (ไม่ใช่ทุกกรณีที่หารลงตัวได้)

ผลลัพธ์

7