Écrivez une fonction qui prend une liste d'entiers positifs et renvoie une liste d'entiers approximativement le pourcentage du total pour l'entier correspondant dans la même position.
Tous les entiers dans la liste de retour doivent correspondre exactement à 100. Vous pouvez supposer que la somme des entiers transmis est supérieure à 0. La façon dont vous voulez arrondir ou tronquer les décimales dépend de vous tant que tout entier résultant résultant est renvoyé en pourcentage n'est pas décalé de plus de 1 dans les deux sens.
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]
C'est le code-golf , donc le code le plus court en octets gagne!
p([2,2,2,2,2,3])
. Il a de nombreuses réponses juridiques possibles, mais toutes ne 2
peuvent pas être mappées à la même valeur. Cela élimine de nombreux algorithmes trop simples qui fonctionnent sur tous les cas de test précédents car l'arrondi n'est pas trop mauvais.
p([1000,1000]) -> [49,51]
?