30 lines
822 B
VB.net
30 lines
822 B
VB.net
Option Explicit
|
|
'----------------------------------------------------------------------
|
|
Private Function coin_count(coins As Variant, amount As Long) As Variant
|
|
'return type will be Decimal
|
|
Dim s() As Variant
|
|
Dim n As Long, c As Long
|
|
|
|
ReDim s(amount + 1)
|
|
s(1) = CDec(1)
|
|
For c = LBound(coins) To UBound(coins)
|
|
For n = coins(c) To amount
|
|
s(n + 1) = CDec(s(n + 1) + s(n - coins(c) + 1))
|
|
Next n
|
|
Next c
|
|
coin_count = s(amount + 1)
|
|
End Function
|
|
'----------------------------------------------------------------------
|
|
Sub Main()
|
|
Dim us_common_coins As Variant
|
|
Dim us_coins As Variant
|
|
|
|
'The next line creates 0-based array
|
|
us_common_coins = Array(25, 10, 5, 1)
|
|
Debug.Print coin_count(us_common_coins, 100)
|
|
|
|
us_coins = Array(100, 50, 25, 10, 5, 1)
|
|
Debug.Print coin_count(us_coins, 100000)
|
|
|
|
End Sub
|