Напишите функцию, которая принимает список целых положительных чисел и возвращает список целых чисел, приблизительно равный проценту общего числа для соответствующего целого числа в той же позиции.
Все целые числа в возвращаемом списке должны в точности составлять до 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]
?