当前位置:首页>python>python 每周一练 精选题(三十三) 甲乙羊数量

python 每周一练 精选题(三十三) 甲乙羊数量

  • 2026-09-09 15:51:37
python 每周一练 精选题(三十三) 甲乙羊数量

题目:甲乙羊数量

甲说:我如果得到乙的9只羊,那么我的数量是乙的二倍;
乙说:我如果得到甲的9只羊,那么两个人的羊数量相等。 
问甲乙各有多少只羊?

输入样例

无

输出样例

甲羊的数量:63, 乙羊的数量:45

参考分析
我们用枚举法求解:
乙说:“我如果得到甲的 9 只羊,那么两个人的羊数量相等”→ 甲的数量 - 9 = 乙的数量 + 9→ 设甲有 x 只,乙有 y 只,则:y = x - 18
甲说:“我如果得到乙的 9 只羊,那么我的数量是乙的二倍”→ 甲的数量 + 9 = 2 × (乙的数量 - 9)→ 即:x + 9 = 2 * (y - 9)
代码逻辑
从 x=1 开始,用 while True 循环不断尝试 x 的值
每次循环先根据 y = x - 18 计算出对应的 y
代入第二个方程验证是否成立,若成立则输出结果并结束循环
若不成立则 x 自增 1,继续下一次尝试
考查知识点
1、Python 基础语法
while 循环与 break 语句的使用
if-else 条件判断
变量赋值与算术运算
字符串格式化输出(%d 占位符)
2、数学建模能力
将自然语言描述的数量关系转化为代数方程
理解 “穷举法” 求解方程的思想(适用于整数解问题)
3、逻辑推理能力
分析两个条件之间的依赖关系,先由乙的话得到 y 与 x 的直接关系,再用甲的话验证求解
参考代码
# 初始化甲的羊数量 x 为 1,从最小正整数开始尝试x = 1# 无限循环,直到找到满足条件的解while True:    # 根据乙的话:甲给乙9只则数量相等 → y = x - 18    y = x - 18    # 根据甲的话:乙给甲9只,则甲的数量是乙的2倍    if x + 9 == 2 * (y - 9):        # 满足条件时,输出甲乙各自的羊数量        print("甲羊的数量:%d, 乙羊的数量:%d" % (x, y))        # 找到解后终止循环        break    else:        # 不满足条件时,x 自增1,尝试下一个数        x = x + 1

最新文章

随机文章