I'm trying to write greedy in Python rather than in C, but am unsure why my code isn't working. It only works if I input an amount of change that can be returned in one type of coin only (i.e. 3.00 which uses only quarters, or 0.20 which uses only dimes). It doesn't work if I do something like 0.12 (dime and 2 pennies) or 0.3 (quarter and nickel). Can someone help?
import cs50
def main():
change = float(input("How much change is owed?"))
print (change)
coins = 0
while change > 0:
if change >= 0.25:
change -= 0.25
coins += 1
elif change >= 0.10:
change -= 0.10
coins += 1
elif change >= 0.05:
change -= 0.05
coins += 1
elif change >= 0.01:
change -= 0.01
coins += 1
print (coins)
if __name__ == "__main__":
main()