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

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 07:45, 3 ตุลาคม 2552 โดย 125.25.244.191 (คุย)
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

ให้

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>

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