vb解决问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 21:04:53
某职工应发工资x元,试求各种票额钞票总张数最少的付款方案

Private Sub Command1_Click()
Dim N As Long, A(), B() As Integer, i As Integer
N = InputBox("请输入一个工资数(精确到元):")
A = Array("100元", "50元", "20元", "10元", "5元", "1元")
ReDim B(UBound(A))
For i = 0 To UBound(A)
B(i) = N \ Val(A(i))
N = N Mod Val(A(i))
Next i
For i = 0 To UBound(A)
If B(i) <> 0 Then Print A(i); B(i); "张"; Space(2);
Next i
Print
End Sub

Dim x As Single, n As Integer, mianzhi, i As Integer

Private Sub Command1_Click()
mianzhi = Array(100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01)
Do
x = InputBox("请输入工资数额")
Loop Until x > 0
For i = 0 To 12
n = Int(x / mianzhi(i))
Print mianzhi(i); ":"; n
x = x - n * mianzhi(i)
Next i
End Sub

从大的到小的算就行了

Private Sub Command1_Click()
A = Array(100, 50, 20, 10, 5