Quick actions

cmd+k|ctrl+k

Navigation

Languages

Exact change

Snippet info

Language

Python

Visibility

public

Author

hospino11

Created

2026-07-12T02:57:57.389572Z

Updated

2026-07-12T03:22:22.805287Z

# Given an integer amount in cents, return the number of distinct ways to make 
# exact change using pennies (1 cent), nickels (5 cents), dimes (10 cents), and 
# quarters (25 cents).

def exact_change(amount):
    change_with_quarters = 0
    change_with_dimes = 0
    change_with_nickels = 0
    change_with_pennies = 1
    if amount >= 25:
        remaining = amount % 25
        change_with_quarters = calculate_change(remaining) + amount // 25
    if amount >= 10:
        remaining = amount % 10
        change_with_dimes = calculate_change(remaining) + amount // 10
    if amount >= 5:
        remaining = amount % 5
        change_with_nickels = calculate_change(remaining) + amount // 5

    print(f"quarters are {change_with_quarters}. dimes are {change_with_dimes}. nickels are {change_with_nickels}. pennies are {change_with_pennies}")
    return change_with_quarters + change_with_dimes + change_with_nickels + change_with_pennies

def calculate_change(amount):
    if amount >= 25:
        remaining = amount % 25
        return calculate_change(remaining) + amount // 25
    if amount < 25 and amount >= 10:
        remaining = amount % 10
        return calculate_change(remaining) + amount // 10
    if amount < 10 and amount >= 5:
        remaining = amount % 5
        return calculate_change(remaining) + amount // 5

    return 0
        
    
result = exact_change(17)
print(f"Exact change of 17 cents is {result}")

result = exact_change(14)
print(f"Exact change of 14 cents is {result}")

result = exact_change(39) # should return 24.
print(f"Exact change of 39 cents is {result}")

result = exact_change(61)
print(f"Exact change of 61 cents is {result}")

result = exact_change(99)
print(f"Exact change of 99 cents is {result}")

INFO