蓝桥等考python14级(智能存钱罐)

智能存钱罐
题目描述:
小蓝设计了一个智能存钱罐,可以通过内部的传感器,自动识别硬币的币值。还能计算存钱罐里硬币的余额,实时显示在外部的显示屏上。

假设硬币有3种,面值分别是1元、2元和5元。硬币通过传感器,会在系统中留下两个记录:
1.这枚硬币是“存入”还是“取出”,用一个大写字母A或B表示,A表示“存入”,B表示“取出”。
2.这枚硬币的币值是多少,用数字1,2,或5表示。
例如“A1”表示存入一个1元硬币,“B2”表示取出一个2元硬币。
存钱罐里的余额起初为0,根据硬币通过传感器的全部记录,请你帮小蓝实现计算余额的程序。
下面是一个例子:
一段时间内通过传感器的硬币记录是A1 A2 A5 B1 A2,对应的操作和存钱罐余额的变化如下表所示:

经过这番操作,存钱罐的余额为9元。
输入:
输入若干个字符串(每个字符串由一个大写字母A或B开头,后面是数字1,2或5,字符串的数量在1~100范围内),表示一段时间内通过传感器的硬币
记录,相邻两个字符串用一个空格分隔。
数据保证取出时存钱罐内硬币数量足够。
提示:
s = input() #输入一个字符串,赋值给s
a = s.split(' ') #将字符串s按空格拆分,保存到列表a中
输出:
一个正整数,表示指定操作完成后,存钱罐当前的余额。
输入样例:
A1 A2 A5 B1 A2
输出样例:
9

参考答案:

#参考程序1:
s = input()
lis = s.split(' ')
dic = {'1' : 0, '2' : 0, '5' : 0} #字典保存三种硬币
for x in lis:
    if x[0] == 'A': #判断是存还是取
        dic[x[1]] += 1
    else:
        dic[x[1]] -= 1
ans = 0
for k, v in dic.items(): #剩余硬币的币值求和
    ans += int(k) * v
print(ans)
#参考程序2:
s = input()
lis = s.split(' ')
a = [0, 0, 0, 0, 0, 0] #列表a[i]表示面值是i的硬币的数量
for x in lis:
    if x[0] == 'A': #判断是存还是取
        a[int(x[1])] += 1
    else:
        a[int(x[1])] -= 1
ans = 0
for i in range(6):
    ans += i * a[i]
print(ans)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值