目录
代码实现
任务描述
1只公鸡5枚铜钱,1只母鸡3枚铜钱,3只小鸡卖1枚铜钱。输入两个正整数m和n,用m枚铜钱购买n只鸡,铜钱必须用完一枚不剩(不许贪污),且要求公鸡、母鸡、小鸡每样都必须有,计算公鸡、母鸡、小鸡各多少? 若有解: 输出公鸡数量最少的一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔; 若无解: 输出“无解”
编程要求
根据提示,在右侧编辑器补充代码,在两行中分别输入两个正整数m和n,用m枚铜钱购买n只鸡,铜钱必须用完一枚不剩(不许贪污),且要求公鸡、母鸡、小鸡每样都必须有,计算公鸡、母鸡、小鸡各多少? 若有解: 输出公鸡数量最少的一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔(若公鸡数量最少时有多组解,仅输出其中母鸡数量最少的一组); 若无解: 输出“无解”
代码实现
m = int(input())
n = int(input())
f = False
for x in range(1,m // 5 + 1): # 从小到大遍历公鸡数量
for y in range(1,m//3 + 1): # 从小到大遍历母鸡数量
z = n - x - y # 小鸡数量计算得到
if z >= 0 and z % 3 == 0 and x * 5 + y * 3 + z / 3 == m :
f = True # 找到解后改变标记,或solution = '有解'
print(x,y,z) # 输出找到的第一组解
break # 结束内层循环
if f: # 根据flag值是否为True判断是否找到解,或if solution == '有解'
break # 找到解时结束外层循环,否则继续执行外层循环
if not f: # 两层循环都结束时,如not flag值为True,表明未找到解,或if solution == '无解'
print("无解")
测试说明
测试输入: 100
100
预期输出: 4 18 78
测试输入: 1000
200
预期输出: 无解
Python缩进到底是个什么规则