នេះជាបញ្ហាកម្សាន្តផ្នែកសរសេរកម្មវិធី ដែលនិយាយអំពីផ្លែប៉ែឆរ (桃子) និងគ្រាប់ផ្លែប៉ែឆរ (桃核)។ ច្បាប់របស់បញ្ហាមានដូចខាងក្រោម៖
- នៅដំបូង មានចំនួនប្រាក់ និងចំនួនគ្រាប់មួយចំនួន
- រាល់ពេលអាចប្រើប្រាក់ 1 យ័ន ដើម្បីទិញផ្លែប៉ែឆរ 1 ផ្លែ ឬប្រើគ្រាប់ 3 គ្រាប់ ដើម្បីប្ដូរយកផ្លែប៉ែឆរ 1 ផ្លែ
- នៅពេលញ៉ាំផ្លែប៉ែឆរ 1 ផ្លែ នឹងទទួលបានគ្រាប់ 1 គ្រាប់បន្ថែម
គោលដៅចុងក្រោយគឺ៖ ញ៉ាំផ្លែប៉ែឆរឲ្យបានច្រើនបំផុតតាមដែលអាចធ្វើបាន។ ខាងក្រោមនេះជាគំនិតពេញលេញក្នុងការដោះស្រាយ និងកូដគំរូ។
គំនិតក្នុងការដោះស្រាយ
ចំណុចសំខាន់នៃបញ្ហានេះ គឺត្រូវប្រើតម្លៃគ្រាប់ឲ្យបានអស់លទ្ធភាព និងជៀសវាងការខ្ជះខ្ជាយ។ ដំណើរការនីមួយៗមានដូចជា៖
- រាល់ជំហាន បម្លែងតម្លៃគ្រាប់ទៅជាប្រាក់ ដើម្បីធានាថាប្រាក់មានច្រើនបំផុត
- បើប្រាក់គ្រប់គ្រាន់ អាចទិញផ្លែប៉ែឆរ 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} 个桃子")