测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A29120. 捡石头

填空题 较易

题目描述

捡石头

题目描述

小强在河边捡了 2 块漂亮的石头,他想再捡两块石头,让这 4 块石头的质量正好 为 30 斤,并且新捡的两块石头的质量是介于前两块石头的质量之间的数字,请编程 输出第 3 块和第 4 块石头的质量。注:每个石头的重量都是整数,如果找不到合适 的石头,则输出 0 0。

输入格式

输入 2 个数,数与数之间以空格间隔,表示 2 块石头的质量。

输出格式

输出表示第 3、4 块石头的质量的所有可能结果,每块石头质量的数字用空格隔 开。多组结果时,按第 3 块石头质量从小到大排序分行输出。

样例输入(测试数据不包含本样例)

1 11 

样例输出

8 10
9 9



参考答案

def find_stones_weight(m1, m2): results = [] # 保存所有可能的结果 for m3 in range(m1 + 1, m2): for m4 in range(m3, m2 + 1): if m1 + m2 + m3 + m4 == 30: results.append((m3, m4)) return results # 输入已有的两块石头的质量 m1, m2 = map(int, input().split()) # 查找可能的新石头质量并输出结果 possible_weights = find_stones_weight(m1, m2) for weight in possible_weights: print(weight[0], weight[1])

答案解析

使用两层循环来解决捡石头的问题。

外层循环遍历第三块石头的质量,内层循环遍历第四块石头的质量。

我们需要满足以下条件:

新捡的两块石头的质量要介于前两块石头的质量之间。四块石头的质量之和等于30。

上一题 下一题