编写一个函数,该函数接受一个正整数列表,并返回一个整数列表,该整数列表近似于相同位置中相应整数的总百分比。
返回列表中的所有整数必须正好等于100。您可以假定传入的整数之和大于0。只要以百分比形式返回的任何单个结果整数,就可以舍入或截断小数在任一方向上的偏离不超过1。
p([1,0,2]) -> [33,0,67] or [34,0,66]
p([1000,1000]) -> [50,50]
p([1,1,2,4]) -> [12,12,25,51] or [13,12,25,50] or [12,13,25,50] or [12,12,26,50]
p([0,0,0,5,0]) -> [0,0,0,100,0]
这是代码高尔夫球,因此以字节为单位的最短代码胜出!
p([2,2,2,2,2,3])
。它有许多可能的法律答案,但并非所有2
的都可以映射为相同的值。这样就消除了许多在所有先前的测试用例上都可以使用的过于简单的算法,因为四舍五入还算不错。
p([1000,1000]) -> [49,51]
吗