Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,623 questions

55,358 answers

573 users

How to divide a given amount into bills (banknotes) and coins in VB.NET

1 Answer

0 votes
Imports System
Imports System.Linq

Module Module1

    '---------------------------------------------------------------
    ' Function: DivideAmount
    '---------------------------------------------------------------
    ' Given an amount and a list of bills/coins, prints how many of
    ' each denomination are needed using a greedy algorithm.
    '
    ' The greedy method is optimal for standard currency systems.
    '---------------------------------------------------------------
    Sub DivideAmount(amount As Integer, denominations As Integer())
		Console.WriteLine("Dividing amount: " & amount & Environment.NewLine)

        For Each d In denominations
            Dim count As Integer = amount \ d   ' Integer division
            If count > 0 Then
                Console.WriteLine($"{d}-unit: {count}")
                amount = amount Mod d           ' Reduce remaining amount
            End If
        Next

        If amount > 0 Then
            Console.WriteLine(Environment.NewLine & "Warning: leftover amount = " & amount)
        End If
    End Sub

    Sub Main()
        Dim bills_coins() As Integer = {500, 100, 200, 50, 20, 10, 5, 2, 1}

        ' VB.NET: sort descending using LINQ
        Dim denominations = bills_coins.OrderByDescending(Function(x) x).ToArray()

        Dim amount As Integer = 9749

        DivideAmount(amount, denominations)
    End Sub

End Module


' run:
'
' Dividing amount: 9749
'
' 500-unit: 19
' 200-unit: 1
' 20-unit: 2
' 5-unit: 1
' 2-unit: 2
'

 



answered Jan 9, 2022 by avibootz
edited Jul 26 by avibootz
...