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,631 questions

55,366 answers

573 users

How to divide a given amount into bills (banknotes) and coins in Ruby

1 Answer

0 votes
#
# Divide a given amount into bills and coins using a greedy algorithm.
# This program is written in idiomatic Ruby, using clear structure,
# functions, built‑in methods, and full explanations.
#

#
# Function: divide_amount
# -----------------------
# 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.
#
def divide_amount(amount, denominations)
  puts "Dividing amount: #{amount}\n\n"

  denominations.each do |d|
    count = amount / d   # integer division
    if count > 0
      puts "#{d}-unit: #{count}"
      amount %= d        # reduce remaining amount
    end
  end

  puts "\nWarning: leftover amount = #{amount}" if amount > 0
end

def main
  bills_coins = [500, 100, 200, 50, 20, 10, 5, 2, 1]

  # Ruby: sort descending using sort.reverse
  denominations = bills_coins.sort.reverse

  amount = 9749

  divide_amount(amount, denominations)
end

main


=begin
run:

Dividing amount: 9749

500-unit: 19
200-unit: 1
20-unit: 2
5-unit: 1
2-unit: 2

=end

 



answered Jul 26 by avibootz
...