某城市的捷運車票共有20、25、30、35、40、45六種,而可投入的錢幣共有1、5、10、50、100元五種。
請計算可能的投幣方式與需找回的零錢金額。
(當所投入的金額超過票價後,多投的錢幣會直接吐還給使用者,所以,多投的部分不用計算。例如,票價20元,當依序投入7個1元、3個5元後,再來投入任何錢幣都會直接先吐還使用者。直接先吐還的這部分,不用寫入程式。)
輸入:in.txt
20
輸出:out.txt
投入20個1元,找回0元。
投入15個1元 1個5元,找回0元。
投入10個1元 2個5元,找回0元。
投入5個1元 3個5元,找回0元。
…
投入1個50元,找回30元。
投入1個100元,找回80元。
Private Sub Form_Load()
回覆刪除Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, num
For x = 0 To 1
Money = x * 100
If Money >= num Then Call printt("投入" & x & "個100元,找回" & (Money - num) & "元"): Exit For
For y = 0 To 1
Money = y * 50 + x * 100
If Money >= num Then Call printt("投入" & y & "個50元 " & x & "個100元,找回" & (Money - num) & "元"): Exit For
For z = 0 To 5
Money = z * 10 + y * 50 + x * 100
If Money >= num Then Call printt("投入" & z & "個10元 " & y & "個50元 " & x & "個100元,找回" & (Money - num) & "元"): Exit For
For k = 0 To 9
Money = k * 5 + z * 10 + y * 50 + x * 100
If Money >= num Then Call printt("投入" & k & "個5元 " & z & "個10元 " & y & "個50元 " & x & "個100元,找回" & (Money - num) & "元"): Exit For
For j = 0 To 45
Money = j * 1 + k * 5 + z * 10 + y * 50 + x * 100
If Money >= num Then Call printt("投入" & j & "個1元 " & k & "個5元 " & z & "個10元 " & y & "個50元 " & x & "個100元,找回" & (Money - num) & "元"): Exit For
Next
Next
Next
Next
Next
Close #2
Close #1
End
End Sub
Public Sub printt(strr As String)
strr = Replace(strr, "投入0個1元 ", "投入")
strr = Replace(strr, " 0個5元 ", " ")
strr = Replace(strr, " 0個10元 ", " ")
strr = Replace(strr, " 0個50元 ", " ")
strr = Replace(strr, " 0個100元,", ",")
Print #2, strr
End Sub
回覆刪除Private Sub Form_Load()
Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
a = Split("1,5,10,50,100", ",")
Do While Not EOF(1)
Input #1, n
Print #2, "投入" & n & "個1元" & " ,找回0元。"
For i = 1 To 4
r = Val(n) \ Val(a(i))
For j = 1 To r + 1
If Val(a(i)) * j < Val(n) Then
ans = Val(n) - Val(a(i)) * j
If ans Mod Val(a(i - 1)) = 0 Then Print #2, "投入" & ans \ Val(a(i - 1)) & "個" & a(i - 1) & "元 " & " " & j & "個" & a(i) & "元" & ",找回0元。"
Else
Print #2, "投入" & j & "個" & a(i) & "元 ,找回" & Val(a(i)) * j - Val(n) & "元"
End If
Next j
Next i
Loop
Close #2
Close #1
End
End Sub