内容正文:
61 Python 枚举算法 下
案例一 金币分配方案
【思考】 禾木和乌拉乎共收入了12枚金币,每个人都要分至少3枚金币,使用枚举法打印出所有的分配方案吧
【解法一】
根据最少3枚,最多12枚来枚举
【解法二】缩小枚举范围
假如乌拉乎得到了最少的3枚金币,那禾木最多能得到9枚金币,反过来也一样。因此每个人的金币数量是3到9枚。
【总结】
有时,可以利用题目的信息来缩小枚举范围,这样可以提高筛选速度~
案例二 10的分成
案例二
某人想将手中的一张面值 100 元的人民币换成五元、 一 元和五毛 面值的票子,但要求换正好 100 张,且每种票子至少一张。问:有几种换法?
、
案例三、很多人喜欢打篮球,篮球规则里面:
投篮不进得零分,
罚篮得一分,
中投篮得两分,
投进三分球得三分。
如果有一个球员投了20次篮,一共得了30分,
那么请问:他投了几次罚篮,几次中投,几次三分?
、
案例四 给定一个整数 n ,返回从 1 到 n 的整数中 1 出现的次数。
示例:
输入:n = 12
输出:9
解释:整数 1 到 12 中包含 1 的数字为 1, 10, 11 和 12
案例五:砝码称重
想要称取100克食盐,现有足量的1克、2克、5克、10克砝码,
要求共取用40枚砝码,且每种砝码至少使用1枚。
请编写程序,找出共有多少种称量方案?
$$