นี่คือโจทย์การเขียนโปรแกรมแนวสนุกเกี่ยวกับพีชและเมล็ดพีช โดยมีเงื่อนไขของโจทย์ดังนี้:

  • เริ่มต้นด้วยจำนวนเงินหนึ่งส่วน และจำนวนเมล็ดพีชหนึ่งส่วน
  • ในแต่ละครั้ง สามารถใช้เงิน 1 หยวนเพื่อซื้อพีช 1 ลูก หรือใช้เมล็ดพีช 3 เมล็ดแลกพีช 1 ลูก
  • เมื่อกินพีช 1 ลูก จะได้รับเมล็ดพีชเพิ่ม 1 เมล็ด

เป้าหมายสุดท้ายคือ: กินพีชให้ได้มากที่สุดเท่าที่จะทำได้ ต่อไปนี้คือแนวคิดการแก้ปัญหาอย่างครบถ้วนและโค้ดตัวอย่าง

แนวคิดการแก้ปัญหา

หัวใจสำคัญของโจทย์นี้อยู่ที่การใช้คุณค่าของเมล็ดพีชให้เกิดประโยชน์สูงสุด และหลีกเลี่ยงการสูญเปล่า โดยขั้นตอนโดยรวมมีดังนี้:

  1. ในแต่ละขั้น พยายามแปลงมูลค่าของเมล็ดพีชให้เป็นเงิน เพื่อให้เงินโดยรวมมากที่สุด
  2. หากเงินพอ ให้ซื้อพีช 1 ลูก แล้วกินทันที
  3. เมื่อไม่สามารถซื้อได้อีก ให้ตรวจสอบว่า “แลกเพิ่มอีกครั้ง” ได้หรือไม่ เพื่อให้การใช้ทรัพยากรเกิดประสิทธิภาพสูงสุด

โค้ดโปรแกรม

ด้านล่างคือโค้ดเต็มรูปแบบที่เขียนด้วย Python

money = 10
peach_pits = 0
peaches_eaten = 0

while True:
    money += peach_pits / 3
    peach_pits = 0
    
    if money < 1:
        if money + 1/3 >= 1:
            money += 1/3
            peach_pits -= 1
        else:
            break
    
    money -= 1
    peaches_eaten += 1
    peach_pits += 1

print(f"总共吃了 {peaches_eaten} 个桃子")