编写一个Python程序,反复要求用户输入硬币值,直到总数与目标值匹配

编写一个Python程序,反复要求用户输入硬币值,直到总数与目标值匹配,python,Python,然而,我意识到,如果不检查每一种可能的硬币组合,我自己实际上不知道如何做到这一点。必须有更好的方法来解决这个问题,但我不知道这类算法的通用名称是什么,我也无法找到一种方法来简化它,除了查看每个解决方案 我想知道是否有人能给我指出正确的方向,或者提供一种更有效的算法。可以在if-elif-else语句中使用循环 e、 g.用您的金额填充一个变量,然后将其用于循环条件,不断要求拿走硬币金额,直到达到0。您可以尝试以下方法: MaxAmount = 100 TotalAmount = 0 while

然而,我意识到,如果不检查每一种可能的硬币组合,我自己实际上不知道如何做到这一点。必须有更好的方法来解决这个问题,但我不知道这类算法的通用名称是什么,我也无法找到一种方法来简化它,除了查看每个解决方案


我想知道是否有人能给我指出正确的方向,或者提供一种更有效的算法。

可以在if-elif-else语句中使用循环
e、 g.用您的金额填充一个变量,然后将其用于循环条件,不断要求拿走硬币金额,直到达到0。您可以尝试以下方法:

MaxAmount = 100
TotalAmount = 0

while TotalAmount < MaxAmount:
    #Here if you want it to be more precise on decimals change int(raw_input("Amount: ")) to float(raw_input("Amount: "))
    EnteredAmount = float(raw_input("Amount: "))
    if EnteredAmount > MaxAmount:
        print "You can not go over 100"
    elif TotalAmount > MaxAmount:
        #You can go two ways here either just set TotalAmount to MaxAmount or just cancel the input
        print "You can not go over 100"
    elif EnteredAmount <= MaxAmount:
        TotalAmount = TotalAmount + EnteredAmount
        print TotalAmount
print "You have reached the total amount of ", MaxAmount
MaxAmount=100
总额=0
当TotalAmountMaxAmount:
打印“你不能超过100”
elif TotalAmount>MaxAmount:
#您可以通过两种方式将TotalAmount设置为MaxAmount或取消输入
打印“你不能超过100”

埃利夫问:“你能再问一个问题吗?”。这是链接