Advertisement

问题 E: 便利店 (python)

阅读量:

题目描述

天宝来到便利店想买些饮料。便利店有各种型号的瓶装饮料售卖,不同型号的饮料卖不同的价格。1瓶0.25升的卖A元,1瓶0.5升的饮料卖B元,1瓶1升的卖C元,1瓶2升的卖D元。便利店里每种饮料都是无限供应。

天宝要买N升的饮料,最少需要花多少钱呢?聪明的你写个程序帮她算算吧。

已知

1) 1≤A,B,C,D≤108 ,1≤N≤109

2) 输入的数据都是整数

输入

输入数据按照下面格式

A B C D

N

输出

输出天宝要买N升的饮料所需要花的钱最小值。

样例输入 Copy

20 30 70 90
3

样例输出 Copy

150

提示

买1瓶2升的饮料和2瓶0.5升的饮料。 这样正好可以买到3升饮料,花费是 90+30+30=150 元。

复制代码
    #贪心策略:每升单价的高低来买
    a,b,c,d = map(int,input().split())
    n = int(input())
    #将饮料,每升单价,升数 合成一个列表
    ls = [(a,4*a,0.25),(b,2*b,0.5),(c,c,1),(d,d/2,2)]
    #将列表根据每升的价格排序
    ls.sort(key= lambda x:x[1] ,reverse=False)
    s=0
    #根据每升的单价升序来买
    for i in ls:
    s+=(n//i[2])*i[0]
    n=n%i[2]
    print(int(s))
    
    
    
    AI写代码python
    
    运行
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-05-31/Cz3FHaIBPfW0Ng4l2VGUrjcZShyv.png)

全部评论 (0)

还没有任何评论哟~