吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1847|回复: 5
收起左侧

[求助] 算法PYTHON求助~

[复制链接]
15997498953 发表于 2020-3-25 22:21
餐厅推出了一个下午茶套餐,包括咖啡2份和点心2份,套餐价格是商品总价格的九折。

已知原价:卡布奇诺:32元,摩卡:30元,抹茶蛋糕:28元,布朗尼:26元。

定义字典dictMenu保存套餐的商品及价格,并计算、输出套餐总价格。




麻烦请哪位大牛用PYTHON把算法写出来,谢谢啦~

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 15997498953 发表于 2020-3-25 22:44
一共有9种组合,麻烦请注意一下。
江还是老的辣 发表于 2020-3-26 00:25
这也算算法?...偷懒也有个度,你这个有个编译器就能AC
 楼主| 15997498953 发表于 2020-3-26 00:32
江还是老的辣 发表于 2020-3-26 00:25
这也算算法?...偷懒也有个度,你这个有个编译器就能AC

大虾,给个编译器呗~
天黑我隐身 发表于 2020-3-26 00:38
from itertools import combinations_with_replacement

cafes = {
    '卡布奇诺': 32,
    '摩卡': 30
}

cakes = {
    '抹茶蛋糕': 28,
    '布朗尼': 26
}

def get_combo(cafeNum: int, cakeNum: int) -> dict:
    """获取咖啡和蛋糕单品组合套餐价格表
    单品定义于公共字典cafes和cakes
    :param cafeNum: 套餐内咖啡杯数
    :param cakeNum: 套餐内蛋糕个数
    :return: dict
    """
    ret = {}
    price_list = cafes.copy()
    price_list.update(cakes)
    for cafe in combinations_with_replacement(cafes.keys(), cafeNum):
        for cake in combinations_with_replacement(cakes.keys(), cakeNum):
            price = sum((price_list[p] for p in cafe + cake))
            ret['+'.join(cafe+cake)] = price
    return ret

c = get_combo(2, 2)

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
ymhld + 1 + 1 热心回复!
15997498953 + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| 15997498953 发表于 2020-3-26 00:54
天黑我隐身 发表于 2020-3-26 00:38
[md]```python
from itertools import combinations_with_replacement

from itertools import combinations_with_replacement as cwr
from itertools import combinations_with_replacement as cb
dictMenu={'卡布奇诺':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}

ls = list(dictMenu.keys())
drinks = ls[0:2]
cakes = ls[2:]
menu = []

n = 0
dk = list(cwr(drinks,2))
ck = list(cwr(cakes,2))
for i in dk:
  for j in ck:
    menu.append([i,j])

for i in range(len(menu)):
  sum = 0
  n += 1
  print('{:-^80}:\n{:-^80}'.format('套餐'+str(n),'-'))
  for j in range(len(menu)):   
    for k in range(len(menu[j])):
      print('{:^10}'.format(menu[j][k]),end=' ')      
      sum += dictMenu[menu[j][k]]  
  sum=sum*0.9
  print('总价为:{:.2f}元'.format(sum))


谢谢您的指教,我看了一下,稍微修改了一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 06:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表