华为算法题目:最大最小货币兑换,python解法

///输入: 2 8 2 127 HKD MAX
/// 第一个参数代表英镑兑美元的汇率,第二个参数代表美元兑人民币的汇率,第三个参数代表人民币对港元的汇率
///英镑>美元>人民币>港元
///输出:3 GBP 1 USD 7 CNY 1 HKD

代码如下,不能保证100%测试用例全过,仅供参考学习:

''' 最大货币兑换:获取最多种类的货币'''
'''最小货币兑换:获取最少的货币种类,也就是换成最不值钱的港币就可以了'''

mt = ['GBP','USD','CNY','HKD']
dh = ['MIN','MAX']
rt  = ''
#判断输入合法性
a = input().split()
for i in range(4):
    if int(a[i]) <= 0:
        print('ERROR')

if a[4] not in mt:
    print('ERROR')

if a[5] not in dh:
    print('ERROR')

Y2G = int(a[0]) * int(a[1]) * int(a[2]) #一个美元可以兑换的港币
M2G = int(a[1]) * int(a[2])
R2G = int(a[2])
#将当前的输入的货币均转换为港币
if a[4] == 'GBP':
    temp = int(a[3]) * Y2G
elif a[4] == 'USD':
    temp  = int(a[3]) * M2G
elif a[4] == 'CNY':
    temp = int(a[3]) * R2G
else:
    temp = int(a[3]) #港币的情况
#计算两种兑换方式
if a[5] == 'MIN':
    rt += (str(temp) + '' + 'HKD')
else:
    if(temp/Y2G > 0):
        rt +=(str(temp//Y2G)+ ' ' + 'GBP' + ' ')
        temp = temp%Y2G
    if(temp/M2G > 0):
        rt += (str(temp//M2G) + ' ' + 'USD' + ' ')
        temp = temp%M2G
    if(temp/R2G > 0):
        rt += (str(temp//R2G) + ' ' + 'CNY' + ' ')
        temp = temp%R2G
    if(temp > 0):
        rt += (str(temp) + ' ' + 'HKD' + ' ')

print(rt)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值