Bu, şeftali (桃子) ve şeftali çekirdeği (桃核) üzerine eğlenceli bir programlama problemidir. Kurallar şu şekildedir:

  • Başlangıçta belli miktarda para ve çekirdek vardır.
  • Her hamlede 1 元 para ile bir şeftali satın alınabilir ya da 3 adet çekirdek ile bir şeftali takas edilebilir.
  • Bir şeftali yendiğinde 1 adet çekirdek kazanılır.

Nihai hedef: mümkün olduğunca çok şeftali yemek. Aşağıda bu problemi çözmek için tam fikir ve kod bulunmaktadır.

Çözüm fikri

Bu problemin kilit noktası, çekirdeklerin değerini tam kullanıp boşa harcamayı önlemektir. İzlenecek adımlar:

  1. Her adımda çekirdeklerin değerini paraya çevirerek mevcut parayı maksimize edin.
  2. Eğer para yeterliyse bir şeftali satın alıp yiyin.
  3. Satın almaya artık devam edemediğinizde, kaynak kullanımını en üst düzeye çıkarmak için “bir kez daha takas yapılıp yapılamayacağını” kontrol edin.

Program kodu

Aşağıda Python ile yazılmış tam kod yer almaktadır:

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} 个桃子")