0

When I run check 50 my code outputs:

Input: 0.15

Expected Output: 2 coins

Actual: 5 coins

Input: 0.41

Expected: 4

Actual: 3

from cs50 import get_float

cash = get_float("Change owed: ")
coins = 0
while cash < 0:
    cash = get_float("Change owed: ")

while cash >= 0.25:
    cash -= 0.25
    coins += 1
    
while cash >= 0.1:
    cash -= 0.1
    coins += 1
    
while cash >= 0.05:
    cash -= 0.05
    coins += 1

while cash >= 0.01:
    cash -= 0.01
    coins += 1

print(coins)
awin
  • 1
  • 1

1 Answers1

0

It is a floating-point issue and instead of using so many while loops put everything inside a single loop.