diff options
| author | mo khan <mo@mokhan.ca> | 2025-04-16 18:00:06 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-04-16 18:00:06 -0600 |
| commit | d733b68808367799335bdacac732f91c168c0d85 (patch) | |
| tree | 5e18bec60de30269b0597129751c7ab13b3e4952 | |
| parent | 54cf54a9f62de2ddaa1db18ba7398b7f4cfc0ebd (diff) | |
fix: bring back the rounding
| -rw-r--r-- | coins2.py | 38 |
1 files changed, 28 insertions, 10 deletions
@@ -4,26 +4,34 @@ DIME = 0.10 NICKEL = 0.05 PENNY = 0.01 -def calculate_with(total, coin): +def coins(total, coin): + if total < coin: + return 0 + remainder = round(total % coin, 2) return round((total - remainder) / coin) -def calculate(money): - quarters = calculate_with(money, QUARTER) - money = money - (quarters * QUARTER) +def calculate(total): + quarters = coins(total, QUARTER) + total = round(total - (quarters * QUARTER), 2) - dimes = calculate_with(money, DIME) - money = money - (dimes * DIME) + dimes = coins(total, DIME) + total = round(total - (dimes * DIME), 2) - nickels = calculate_with(money, NICKEL) - money = money - (nickels * NICKEL) + nickels = coins(total, NICKEL) + total = round(total - (nickels * NICKEL), 2) - pennies = round(money * 100) + pennies = round(total * 100) + print([quarters, dimes, nickels, pennies]) return [quarters, dimes, nickels, pennies] -assert [0, 0, 0, 0] == calculate(0.00) +def receipt(total): + coins = calculate(total) + return f"quarters:{coins[0]}; dimes:{coins[1]}; nickels:{coins[2]}; pennies:{coins[3]}" +assert [76, 1, 1, 0] == calculate(19.15) +assert [0, 0, 0, 0] == calculate(0.00) assert [0, 0, 0, 1] == calculate(0.01) assert [0, 0, 1, 0] == calculate(0.05) assert [0, 0, 1, 1] == calculate(0.06) @@ -34,6 +42,16 @@ assert [1, 0, 0, 0] == calculate(0.25) assert [1, 0, 0, 1] == calculate(0.26) assert [1, 0, 1, 1] == calculate(0.31) assert [1, 1, 1, 1] == calculate(0.41) +assert [3, 1, 1, 4] == calculate(0.94) assert [4, 0, 0, 1] == calculate(1.01) +assert [5, 0, 1, 1] == calculate(1.31) + + +assert "quarters:0; dimes:1; nickels:0; pennies:0" == receipt(0.10) +assert "quarters:1; dimes:0; nickels:0; pennies:0" == receipt(0.25) +assert "quarters:1; dimes:1; nickels:1; pennies:1" == receipt(0.41) +assert "quarters:3; dimes:1; nickels:1; pennies:4" == receipt(0.94) +assert "quarters:5; dimes:0; nickels:1; pennies:1" == receipt(1.31) +assert "quarters:76; dimes:1; nickels:1; pennies:0" == receipt(19.15) print("All tests are passing!") |
