Способы потратить определенную сумму денег определенными монетами - Visual Basic .NET

Формулировка задачи:

У Вас А монет по Х рублей и В монет по Y рублей. Можно ли с их помощью заплатить Z рублей, если да - то как? Если можно то с пояснением, заранее спасибо!

Код к задаче: «Способы потратить определенную сумму денег определенными монетами - Visual Basic .NET»

textual
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim X As Integer = Val(InputBox("Введите номинал монет №1", "Ввод данных", 2))
        Dim n1 As Integer = Val(InputBox("Введите количество монет №1", "Ввод данных", 10))
        Dim Y As Integer = Val(InputBox("Введите номинал монет №2", "Ввод данных", 5))
        Dim n2 As Integer = Val(InputBox("Введите количество монет №1", "Ввод данных", 20))
        Dim Z As Integer = Val(InputBox("Сколько нужно заплатить.", "Ввод данных", 17))
        Dim A, B As Integer, k As Integer, s As String = "Чтобы заплатить " & Z & " руб. нужно:" & vbCrLf
        For A = 0 To n1
            For B = 0 To n2
                If A * X + B * Y = Z Then
                    k += 1
                    s &= vbCrLf & "Вариант №" & k.ToString & ":" & vbCrLf & _
                        IIf(A > 0, "монет по " & X & " руб.: " & A & " шт." & vbCrLf, "") & _
                        IIf(B > 0, "монет по " & Y & " руб.: " & B & " шт.", "") & vbCrLf
                End If
            Next
        Next
        MsgBox(IIf(k = 0, "Вариантов нет.", s))
    End Sub

5   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ