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