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

นับช่องว่างหลังลบมุมและเส้นทแยงใน Python

ภาพรวม

โจทย์หาจำนวนช่องที่เหลือบนกระดาน n×n หลังจากลบช่องที่อยู่บนเส้นทแยงมุมทั้ง 4 มุม (main diagonal และ anti-diagonal)

ตัวอย่าง n=4

XOOX
OXXO
OXXO
XOOX

X = ลบ, O = เหลือ → เหลือ 8 ช่อง

สูตรคณิตศาสตร์

result = n² - 2n + (n % 2)

  • n²: ช่องทั้งหมด
  • 2n: เส้นทแยง 2 เส้น (main + anti) แต่ละเส้น n ช่อง
  • n % 2: กรณี n คี่ จุดกึ่งกลางถูกนับซ้ำ 2 ครั้ง ต้องเพิ่มกลับ 1

โค้ด Python

class Solution:
    def solve(self, n):
        return n*n - 2 * n + (n % 2)

ob = Solution()
print(ob.solve(4))

ตรวจสอบ

nn²2nn%2ผลลัพธ์
39614
416808
52510116

ผลลัพธ์

8