Python 编程练习:自动售票机收益计算
Python 编程练习:自动售票机收益计算
小明经营了一家电影院,每张电影票单价为 5 元,由于价格实惠且影片质量很高,所以导致前来看电影的人特别多。
小明为了减轻自己的工作压力,特意买了一台自动售票机,自动售票机只可以接受面值为 5 元、10 元、20 元的纸币。接受大额纸币(即 10 元或 20 元的纸币)时,如果没有足够的零钱,售票机将拒绝售票并将纸币退给客户,如果有足够的零钱,售票机一定会出票并且找零。
每天一开始,售票机中是没有任何钱的。当天一共来了 n 位客户,每位客户只买一张票也只给售票机塞一张纸币。
售票机记录了,按照购票的顺序收到的 n 张纸币的面值,注意有的纸币因为无法找零会被退回,但是在售票机中记录不会删除。
由于小明每天统计收益非常麻烦(需要一张一张的数),他想邀请你帮他写一个程序:根据售票机的记录来快速计算出当天的收益。
输入格式
第一行,一个正整数 n,表示记录数量;
第二行,包含 n 个正整数 a1,a2,...an,,表示按照购票的顺序收到的 n 张纸币的面值,保证 ai 一定是 5、10、20 三者之一
输出格式
一行,一个整数,表示最后营收总金额
示例
输入
5 5 10 5 20 5
输出
25
代码
def calculate_revenue(n, bills):
revenue = 0
change = 0
for bill in bills:
if bill == 5:
revenue += 5
elif bill == 10:
if revenue < 5:
return -1
revenue += 5
change += 5
elif bill == 20:
if revenue < 15:
return -1
if change >= 5:
change -= 5
revenue += 5
else:
if revenue < 10:
return -1
revenue += 5
change += 5
revenue -= 10
return revenue
n = int(input())
bills = list(map(int, input().split()))
revenue = calculate_revenue(n, bills)
print(revenue)
原文地址: https://www.cveoy.top/t/topic/qx7l 著作权归作者所有。请勿转载和采集!