数学程序中的错误

时间:2016-08-24 09:11:51

标签: python-2.7 math

你能否善待人们请告诉我为什么这个程序每次最终提交给代码新闻都失败了,我似乎无法弄明白。他们甚至没有提供失败的实际字符串,所以我只是尝试各种不同的组合,这些组合到目前为止都运行得非常好。我不是故意欺骗或者其他什么,但我坦率地说非常沮丧,并且不知道还能做什么。

该程序基本上应该按照列表的顺序扫描单个25,50或100美元钞票的“人”列表,并计算它是否有足够的变化来销售它们所有的电影票。门票25美元。该程序没有任何金钱或改变开始,所以它基本上必须与从线上获得的东西一起工作。如果可以处理整行,则程序应返回字符串“YES”,否则返回“NO”。

例如,[25,25,50,100]应该返回yes等等......

这是我的代码 -

def tickets(x):
    t = 0
    f = 0
    h = 0
    lst = []

    for i in x:
        if i==25:
            t+=1
            lst.append('c')
        elif i==50:
            if t>=1:
                t-=1
                f+=1
                lst.append('c')
            else:
                lst.append('u')



        elif i == 100:
            if t>=3:
                t-=3
                h+=100
            elif f>=1 and t>=1:
                f-=1
                t-=1
                lst.append('c')
            else:
                lst.append('u')


    if 'u' not in lst:
        return "YES"

    else:
        return "NO"

任何帮助识别错误都将受到赞赏。谢谢 !

1 个答案:

答案 0 :(得分:1)

你的代码将在25,25,25,25,50,100,50失败,因为你给这个人全部25个人,然后你不能帮助最后的50分。给100分50分和25分你将能够用50的最后一个人帮忙。翻转

的顺序
if t>=3:
            t-=3
            h+=100
            lst.append('c')
        elif f>=1 and t>=1:
            f-=1
            t-=1
            lst.append('c')

        if f>=1 and t>=1:
            f-=1
            t-=1
            lst.append('c')
         elif t>=3:
            t-=3
            h+=100
            lst.append('c')

我打赌它过去了。