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

พิมพ์จำนวนตัวอักษรมากที่สุดจาก Copy-Paste ใน n ขั้นตอน Python

มี n ออปปอเรชัน แต่ละอันเป็น: พิมพ์ 'x', Copy ทั้งหมด, หรือ Paste หาจำนวน 'x' สูงสุด

ตัวอย่าง: n = 12 → 81

แนวทาง (Pattern Recognition)

กลยุทธ์ที่ดีที่สุด: พิมพ์ 3 ตัว → Copy → Paste × 2 → Copy → Paste × 2 → ... (บล็อก 3 ขั้น: Copy, Paste, Paste ให้คูณ 3)

ขั้นตอน

  1. ถ้า n <= 4 คืน n
  2. เริ่ม v=6, x=3, i=5, j=0
  3. วนจน i == n:
    • v += x; i += 1; j += 1
    • j % 3 == 0: x = int(x * 1.5) (Copy)
    • j % 3 == 1: ไม่ทำอะไร (Paste)
    • j % 3 == 2: x *= 2 (Paste)
  4. คืน v

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

class Solution:
    def solve(self, n):
        if n <= 4:
            return n
        v = 6
        x = 3
        i = 5
        j = 0
        while i != n:
            v += x
            i += 1
            j += 1
            if j % 3 == 0:
                x = int(x * 1.5)
            elif j % 3 == 1:
                pass
            else:
                x *= 2
        return v

ob = Solution()
n = 12
print(ob.solve(n))  # 81

อินพุต

12

เอาต์พุต

81