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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
แถว 14: แถว 14:
  
 
เขียนเป็น pseudocode ได้ดังนี้
 
เขียนเป็น 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>

รุ่นแก้ไขปัจจุบันเมื่อ 07:45, 3 ตุลาคม 2552

ให้

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>

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