8 种配料每种配料可以放 1 到 5 克,美味度为配料质量之和,给定一个美味度 n,求解 8 种配料的所有搭配方案及方案数量 。
(本笔记适合学了 Python 循环,正在熟炼的 coder 翻阅)
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆ 美食配方
- 1、题目描述
- 2、题解
- 2.1 八层for 循环
- 2.2 Python 优雅的解析式
- 、完整源码
◆ 美食配方
1、题目描述
某餐厅厨师制作美食需要用到 8 种配料(盐、芥末、糖等),每种配料可以放 1 到 5 克,美食的美味度为所有配料质量之和。如果给定一个美味度 n,求解具有该美味度的 8 种配料的所有搭配方案及方案数量。
【输入形式】
一个正整数 n (n<=100),表示美味度。
【输出形式】
1.方案总数 = 0,输出 0 ;
2. 1 <= 方案总数 <= 5,按字典序排列输出所有搭配方案,最后一行输出方案总数;
3. 方案总数 > 5 ,按字典序排列输出前 5 种搭配方案,最后一行输出方案总数;
注:每行用空格隔开输出 8 种配料的质量,表示 1 种搭配方案。
2、题解
2.1 八层for 循环
用八层 for 嵌套,可以打印输出所有满足条件的“美味配方”到终端屏幕。
for a1 in range(1, 6):
for a2 in range(1, 6):
for a3 in range(1, 6):
for a4 in range(1, 6):
for a5 in range(1, 6):
for a6 in range(1, 6):
for a7 in range(1, 6):
for a8 in range(1, 6):
count = sum([a1, a2, a3, a4, a5, a6, a7, a8])
if count == delicious:
counts += 1 # 统计配方总数。
print(', '.join([f"{k}: {v}" for k,v in zip(['a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8'], [a1, a2, a3, a4, a5, a6, a7, a8])]))
题目要求是大于五个配方的美味度,只列印字典序前五条配方。由于采用的 for 循环嵌套遍历,本就从字典序,只输出前五条就好。
if counts <= 5:
print(', '.join([f"{k}: {v}" for k,v in zip(['a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8'], [a1, a2, a3, a4, a5, a6, a7, a8])]))
- 代码运行效果截屏图片
2.2 Python 优雅的解析式
Python 优雅的解析式,可以把八层 for 写成一行,生成以 zip() 类型为元素的列表,每个 zip() 类型就是一组“美味配方”,遍历配方列表前5就好。( 8 层 for 本就是按字典序穷举遍历,所以直接打印前五就可以)
result = [zip(('a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8'), (a1, a2, a3, a4, a5, a6, a7, a8)) for a1 in range(1, 6) for a2 in range(1, 6) for a3 in range(1, 6) for a4 in range(1, 6) for a5 in range(1, 6) for a6 in range(1, 6) for a7 in range(1, 6) for a8 in range(1, 6) if sum((a1, a2, a3, a4, a5, a6, a7, a8)) == delicious]
for i in result[:5]:
print(f"{', '.join((f'{k}: {v}' for k,v in i))}")
print(f"{'':~^41}\n{' 以上是字典序前五配方 ':^31}")
print(f"\n{'':>13}配方总数:{len(result)}\n{'':~^41}")
- 代码运行效果截屏图片
print(result[:5]) ,接打印前组“美味配方”就是——
for i in result[:5]:
print(f"{’, ‘.join((f’{k}: {v}’ for k,v in i))}")
插值字符串格式打印,就是——
、完整源码
(源码较长,点此跳过源码)
上一篇: 模拟随机验证码(模拟随机验证码)
下一篇:
我的HOT博:
本次共计收集 213 篇博文笔记信息,总阅读量 30.40w,平均阅读量 1427。已生成 21 篇阅读量不小于 3000 的博文笔记索引链接。数据采集于 2023-06-18 22:38:02 完成,用时 4 分 22.04 秒。
- 让QQ群昵称色变的神奇代码
( 55929 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122566500
点赞:24 踩 :0 收藏:81 打赏:0 评论:17
本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。 - pandas 数据类型之 DataFrame
( 8664 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/124525814
点赞:6 踩 :0 收藏:29 打赏:0 评论:0
本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。 - 个人信息提取(字符串)
( 6709 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/124244618
点赞:1 踩 :0 收藏:11 打赏:0 评论:0
本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。 - 罗马数字转换器|罗马数字生成器
( 6600 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122592047
点赞:0 踩 :0 收藏:1 打赏:0 评论:0
本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。 - Python字符串居中显示
( 6516 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122163023
点赞:1 踩 :0 收藏:6 打赏:0 评论:1
本篇博文笔记于 2021-12-26 23:35:29 发布。 - 斐波那契数列的递归实现和for实现
( 5367 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122355295
点赞:4 踩 :0 收藏:2 打赏:0 评论:8
本篇博文笔记于 2022-01-06 23:27:40 发布。 - Python列表(list)反序(降序)的7种实现方式
( 5317 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/128271700
点赞:4 踩 :0 收藏:18 打赏:0 评论:8
本篇博文笔记于 2022-12-11 23:54:15 首发,最晚于 2023-03-20 18:13:55 修改。 - 练习:字符串统计(坑:f‘string‘报错)
( 4948 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121723096
点赞:0 踩 :0 收藏:1 打赏:0 评论:0
本篇博文笔记于 2021-12-04 22:54:29 发布。 - 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
( 4701 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121645399
点赞:14 踩 :0 收藏:42 打赏:0 评论:0
本篇博文笔记于 2021-11-30 23:43:17 发布。 - python清屏
( 4623 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/120762101
点赞:0 踩 :0 收藏:5 打赏:0 评论:0
本篇博文笔记于 2021-10-14 13:47:21 发布。 - 回车符、换行符和回车换行符
( 4578 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/123109488
点赞:1 踩 :0 收藏:2 打赏:0 评论:0
本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。 - 密码强度检测器
( 4015 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121739694
点赞:1 踩 :0 收藏:4 打赏:0 评论:0
本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。 - 练习:生成100个随机正整数
( 3997 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122558220
点赞:1 踩 :0 收藏:6 打赏:0 评论:0
本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。 - 罗马数字转换器(用罗马数字构造元素的值取模实现)
( 3900 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/122608526
点赞:0 踩 :0 收藏:0 打赏:0 评论:0
本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。 - 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
( 3708 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/124424935
点赞:1 踩 :0 收藏:3 打赏:0 评论:0
本篇博文笔记于 2022-04-26 12:46:25 首发,最晚于 2022-04-27 21:22:07 修改。 - 我的 Python.color() (Python 色彩打印控制)
( 3648 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/123194259
点赞:2 踩 :0 收藏:7 打赏:0 评论:0
本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。 - 练习:仿真模拟福彩双色球——中500w巨奖到底有多难?跑跑代码就晓得了。
( 3409 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/125415626
点赞:3 踩 :0 收藏:4 打赏:0 评论:3
本篇博文笔记于 2022-06-22 19:54:20 首发,最晚于 2022-06-23 22:41:33 修改。 - 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )
( 3221 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/124539589
点赞:3 踩 :0 收藏:2 打赏:0 评论:3
本篇博文笔记于 2022-05-02 13:02:39 首发,最晚于 2022-05-21 06:10:42 修改。 - random.sample()将在python 3.9x后续版本中被弃用
( 3204 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/120657230
点赞:0 踩 :0 收藏:0 打赏:0 评论:0
本篇博文笔记于 2021-10-08 18:35:09 发布。 - Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义
( 3190 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/123087606
点赞:0 踩 :0 收藏:4 打赏:0 评论:3
本篇博文笔记于 2022-02-23 13:08:07 首发,最晚于 2022-04-04 23:52:38 修改。 - 练习:求列表(整数列表)平衡点
( 3087 阅读)
博文地址:https://blog.csdn.net/m0_57158496/article/details/121737612
点赞:0 踩 :0 收藏:0 打赏:0 评论:0
本篇博文笔记于 2021-12-05 23:28:10 发布。
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
- 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)