هاد المسألة هي عن لغز شيّق في البرمجة عن الخوخ (桃子) ولبّ الخوخ (桃核). القوانين كالتالي:
- من البداية في عدد معيّن من الفلوس وعدد معيّن من اللبّ.
- كل مرة فيك يا تشري خوخة ب 1 يوان، أو تعوّض 3 لُبوب (لبّ) بحدّ خوخة.
- كل ما بدّك تاكل خوخة، بتاخد 1 لُبة (لبّ) زيادة.
الهدف النهائي: تاكل أكبر عدد ممكن من الخوخ. هاد يلي بيحكي عن الفكرة كاملة وكمان كود الحل.
فكرة الحل
السرّ بهالمسألة هو إنك تستعمل قيمة اللبّ بأقصى شكل وبدون ما يصير إهدار. الخطوات بتكون هيك:
- بكل خطوة حوّل قيمة اللبّ لفلوس، هيك بتضمن إن رأس المال بضل أكبر ما يمكن.
- إذا الفلوس كافية، اشترِ خوخة وحدة وكُلّها.
- لما تلاقى إنه ما عم تقدر تكمّل شراء، راجع إذا فيك “تبدّل مرة إضافية” لحتى تضمن استغلال الموارد لأقصى درجة.
كود البرنامج
تحت في الكود كامل مكتوب على 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} 个桃子")