2012年9月14日 星期五

100正式Problem 4-1


子題 1:找零錢問題
假設在某地區使用的銅板有 50 元、20 元、10 元、5 元、1 元共五種。今天媽媽請小華去買東西換銅板回來,且媽媽交待,要小華請老闆找零錢的數目要最少,小華帶了n 張的100元紙幣,買了n 項金額少於100 元東西,有n 筆數量的零錢要找給小華,請幫老闆算一算每筆交易需找多少個50 元、20 元、10 元、5 元、1 元的銅板,其銅板數目最少。
輸入說明:
檔案輸入第一行為總共幾筆金額,其值介於1(含)和5(含)之間,接下來是每筆交易金額大小,
交易金額介於0(不含)和100(不含)之間。
輸出說明:
請算出每筆交易金額可換回的銅板數量,每筆交易都會各別找回50 元、20 元、10 元、5 元、
1 元銅板若干,請算出每筆交易找回的銅板,依序計算其50 元銅板數量,20 元銅板數量,10
元銅板數量,5 元銅板數量,1 元銅板數量總和。
例如三筆交易金額分別為 59、51、34,每筆交易找回的銅板分別為:
50,0 20,2 10,0 5,0 1,1
50,0 20,2 10,0 5,1 1,4
50,1 20,0 10,1 5,1 1,1
最後輸出交易找回50 元、20 元、10 元、5 元、1 元銅板總合:
50,1 20,4 10,1 5,2 1,6
例如二筆交易金額分別為 25、10,每筆交易找回的銅板分別為:
50,1 20,1 10,0 5,1 1,0
50,1 20,2 10,0 5,0 1,0
最後輸出交易找回50 元、20 元、10 元、5 元、1 元銅板總合:
50,2 20,3 10,0 5,1 1,0
每個檔案in1.txt 和in2.txt,各輸出一個結果。
輸入範例:【檔名:in1.txt】

3
59
51
34

輸入範例:【檔名:in2.txt】

2
25
10

輸出範例:【檔名:out.txt】
50,1 20,4 10,1 5,2 1,6

50,2 20,3 10,0 5,1 1,0

1 則留言:

  1. Dim co50, co20, co10, co5, co1, a As Integer
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in1.txt" For Input As #1
    Open App.Path & "\in2.txt" For Input As #2
    Open App.Path & "\out.txt" For Output As #3
    Input #1, n
    Input #2, n1
    For i = 1 To n
    b = 100
    Input #1, x
    b = b - x
    Do
    If b >= 50 Then
    co50 = co50 + 1: b = b - 50
    ElseIf b >= 20 Then b = b - 20: co20 = co20 + 1
    ElseIf b >= 10 Then b = b - 10: co10 = co10 + 1
    ElseIf b >= 5 Then b = b - 5: co5 = co5 + 1
    ElseIf b >= 1 Then b = b - 1: co1 = co1 + 1
    End If
    Loop Until b = 0
    Next
    Print #3, "50," & co50 & " " & "20," & co20 & " " & "10," & co10 & " " & "5," & co5 & " " & "1," & co1
    Print #3,
    co50 = 0: co20 = 0: co10 = 0: co5 = 0: co1 = 0
    For i = 1 To n1
    b = 100
    Input #2, x
    b = b - x
    Do
    If b >= 50 Then
    co50 = co50 + 1: b = b - 50
    ElseIf b >= 20 Then b = b - 20: co20 = co20 + 1
    ElseIf b >= 10 Then b = b - 10: co10 = co10 + 1
    ElseIf b >= 5 Then b = b - 5: co5 = co5 + 1
    ElseIf b >= 1 Then b = b - 1: co1 = co1 + 1
    End If
    Loop Until b = 0
    Next
    Print #3, "50," & co50 & " " & "20," & co20 & " " & "10," & co10 & " " & "5," & co5 & " " & "1," & co1
    Close
    Close
    Close
    End
    End Sub

    回覆刪除