این یک مسئله برنامهنویسی سرگرمکننده درباره هلو و هسته هلو است. قوانین مسئله به شرح زیر است:
- در ابتدا مقدار مشخصی پول و مقداری هسته وجود دارد.
- در هر مرحله میتوان با 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} 个桃子")