418531 ภาคต้น 2552/โจทย์ปัญหาการโปรแกรมพลวัต I/เฉลยข้อ 8

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ให้

Error

Too many requests (f061ab2)

มีค่าเป็น ถ้าสามารถใช้เหรียญ ทอนเงิน บาทได้ หรือมีค่าเป็น ถ้าไม่สามารถใช้เหรียญ ทอนเงิน บาทได้

พิจารณากรณีที่ไม่มีเหรียญและไม่มีเงินต้องทอน จะได้ว่า

กรณีที่ไม่มีเหรียญแต่มีเงินให้ทอน บาทจะได้ว่า ถ้า

Error

Too many requests (f061ab2)

กรณีที่มีเหรียญ

Error

Too many requests (f061ab2)

เหรียญแต่ไม่มีเงินให้ทอน จะได้ว่า

ส่วนกรณีที่มีเหรียญ

Error

Too many requests (f061ab2)

เหรียญและมีเงินให้ทอน บาท จะได้ว่า ถ้า

อธิบายเพิ่ม

Error

Too many requests (f061ab2)

คือการที่ไม่ใช้เหรียญ ช่วยในการทอนเงิน บาท ดังนั้นจึงใช้เหรียญที่เหลือคือ ในการทอนเงิน บาทเท่าเดิมแทน

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

Error

Too many requests (f061ab2)

เมื่อ เป็นมูลค่าของเหรียญที่

เขียนเป็น pseudocode ได้ดังนี้

<geshi lang="c"> FindSolution(i,v)

   if i=0 and v=0 then
       return 1
   else if i=0 and v > 0 then
       return 0
   else if v=0 then 
       return 1
   else 
       if v >= x_i
           M(i,v)= FindSolution(i-1,v) OR FindSolution(i,v-x_i)
   return M(i,v)

</geshi>

รายการเลือกการนำทาง