题目描述
有一位阿拉伯老人,生前养有11匹马,他去世前立下遗嘱:大儿子、二儿子、小儿子分别继承遗产的1/2、1/4、1/6。
儿子们想来想去没法分:他们所得到的都不是整数,即分别为11/2、11/4、11/6,总不能把一匹马割成几块来分吧?
聪明的邻居牵来了自己的一匹马,对他们说:“你们看,现在有12匹马了,老大得12匹的1/2就是6匹,老二得12匹的1/4就是3匹, 老三得12匹的1/6就是2匹,还剩一匹我照旧牵回家去。”这样把难分的问题解决了。
现在又有一个老人要分遗产了,他有m匹马(1≤m≤1000000),并且有n个儿子(1≤n≤10),每个儿子分别得到1/a1、1/a2、…、1/an的遗产。
因为马不能分割,并且遗产要全部分完,所以请你用上面那位聪明的邻居的方法计算一下每个儿子能分到几匹马。
输入描述:
输入包括多组测试数据。
每组测试数据包括两行:
第一行为m、n,分别代表老人拥有的马匹数和几个儿子。
第二行有n个数据a1、a2、…、an,依次代表大儿子、二儿子…第n个儿子分到的遗产的份额。(0 < ai < 50)
程序以输入0 0结束,该行不做处理。
输出描述:
按照上面介绍的方法解决这个问题。
如果那种方法不能解决这个问题(即所有儿子不能得到整数匹马),则你的程序要输出\"Can’t Solve\";
否者依次输出大儿子、二儿子…得到的马的匹数。
每个数之间有一个空格隔开(最后一个数据后面没有空格)。
def judgy(i,m,money):
if i<m:
print(“Cant’ Solve”)
else:
for ss in money:
ss=int(ss)
print(i//ss,end=’ \')#//使输出是整数 /使输出是浮点数
money=[]
str1 = input().split()
m = int(str1[0])
n = int(str1[1])
money=input().split()
#m = input()
#m = int(m)
#n = input()
#n = int(n)
#j = n
#while j > 0:
i = input().split()
i = int(i)
money.append(i)
j = j-1
i = money[0]
i=int(i)
key = 1
while key == 1:
word = 0
for s in money:
s=int(s)
if i % s != 0:
i = i+1
word = 1
break
if word == 0:
key = 0
judgy(i , m , money )
继续阅读与本文标签相同的文章
学习大数据最好的时间是十年前,其次是现在
《算法技术手册》一2.4.5 线性对数算法的性能
-
AI+5G科技创新 视频行业呈现轻应用化趋势
2026-05-14栏目: 教程
-
1.98亿滴滴用户添加了紧急联系人 每天百万个订单行程分享给亲友
2026-05-14栏目: 教程
-
工程院院士刘韵洁:5G前景很大,但主要是行业应用
2026-05-14栏目: 教程
-
陆奇:看好5G技术,但应用好5G还需要时间
2026-05-14栏目: 教程
-
在Visual Studio中使用clang-tidy进行代码分析
2026-05-14栏目: 教程
