蓝桥题库每日一练 · 2026.09.11
9月11日 古题「百钱买百鸡」:拿 100 元买 100 只…
古题「百钱买百鸡」:拿 100 元买 100 只鸡。公鸡 5 元一只、母鸡 3 元一只、小鸡仔 1 元 3 只,各买多少只?编程求出所有可能的答案(某种鸡也可以一只都不买,即 0 只),一行一组,每行格式为「公鸡 XX 只,母鸡 XX 只,小鸡仔 XX 只」(本题没有输入,完整输出见样例)。
样例
输入 (无)输出
公鸡 0 只,母鸡 25 只,小鸡仔 75 只
公鸡 4 只,母鸡 18 只,小鸡仔 78 只
公鸡 8 只,母鸡 11 只,小鸡仔 81 只
公鸡 12 只,母鸡 4 只,小鸡仔 84 只评分标准
- 6 分:至少输出一组正确答案(格式不限)
- 5 分:至少输出一组、格式符合样例
- 9 分:分行输出所有正确答案、格式符合样例
参考解法
这是一道 1500 多年前的名题——南北朝张丘建《算经》里的「百钱买百鸡」:100 块钱买 100 只鸡,公鸡 5 元、母鸡 3 元、小鸡仔 3 只 1 元(合每只三分之一元),问三种鸡各买几只。
古人靠巧算,咱们有电脑,用最实在的办法——挨个试(枚举):让公鸡数从 0 开始试、母鸡数也从 0 开始试,小鸡数就用「100 − 公鸡 − 母鸡」补齐(保证总数正好 100 只)。然后检查两件事:一是小鸡数得是 3 的倍数(不然「3 只 1 元」凑不出整钱),二是花的钱正好 100。两条都满足,就是一组答案。输出用的是 print(f'…'):字符串前面加个 f,里面花括号 {x} 的位置就会换成变量 x 的值,一行正好拼成「公鸡 0 只,母鸡 25 只,小鸡仔 75 只」这种格式。
for x in range(0, 21): # 公鸡最多 100÷5=20 只
for y in range(0, 34): # 母鸡最多 100÷3≈33 只……此答案或解析由 AI 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。