蓝桥题库每日一练 · 2026.09.11

9月11日 古题「百钱买百鸡」:拿 100 元买 100 只…

Python编程题参考难度 ★★★★☆蓝桥杯第十一届 选拔赛 · 已用
古题「百钱买百鸡」:拿 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 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。