Fatigué de toujours vous demander combien de Pokémon de plus vous devez attraper pour obtenir ces évolutions de haut niveau? Je ne me demande plus! Vous allez maintenant écrire un programme ou une fonction complète pour le calculer pour vous!
Le défi:
En entrée, votre programme recevra une liste des coûts en bonbons pour faire évoluer un Pokémon au niveau suivant. (Cette liste peut être séparée par n'importe quel délimiteur de votre choix ou comme arguments de fonction). Votre programme retournera ou imprimera ensuite le nombre de Pokémon à attraper, y compris celui qui sera évolué, pour évoluer à travers tous les niveaux donnés.
Comment calculez-vous cela? Comme ceci:
1. Additionnez tous les coûts des bonbons: 12 + 50 = 62
2. Soustrayez 3 bonbons du total, celui-ci étant du Pokémon que vous gardez pour évoluer: 62 - 3 = 59
3. Divisez ce nombre par 4 (3 pour attraper, 1 pour le donner à la Professeur), en prenant toujours ceil()
le résultat: ceil(59/4) = 15
4. Enfin, ajoutez 1 à ce total pour obtenir le nombre total de Pokémon que vous devez attraper, 16!
Exemple Input -> Output
:
[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65
Gagnant:
L'application a déjà occupé la majeure partie de l'espace sur votre téléphone, votre programme doit donc être aussi court que possible. Le programme ou la fonction complète avec le plus petit nombre d'octets sera accepté dans deux semaines! (tous les liens étant réglés par la première soumission soumise!)
floor(Sum(L)/4)+1
? La formule actuelle ne fonctionne pas pour les sommes divisibles par 4. Par exemple,[400]
elle renverrait 100, alors qu'en réalité, elle doit être de 101 pour que l'extra évolue.Réponses:
05AB1E , 4 octets
Explication
Essayez-le en ligne
la source
Gelée,
54 octetsEssayez-le en ligne!
S
euh, entier divisé:
par4
et incrémenter‘
.la source
[4]
.Brain-Flak 112 octets
Essayez-le en ligne!
Explication
Il additionne la pile, soustrait un, divise par quatre et en ajoute un.
la source
[4]
.C # REPL, 15 octets
S'exécute vers
Func<IEnumerable<int>, int>
.la source
En fait, 4 octets
Essayez-le en ligne!
Explication:
la source
Brachylog , 5 octets
Essayez-le en ligne!
Explication
Une réponse très originale…
la source
Python 2, 21 octets
Ideone it!
Formule:
((sum(a)-1)//4)+1
où//
estfloor-div
.la source
[4]
.BASH (sed + bc) 19
L'entrée est une
+
liste distincte sur stdinPar exemple:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc
la source
Haskell, 17 octets
la source
Pyke, 4 octets
Essayez-le ici!
la source
Pyth, 5 octets
Essayez-le ici!
Additionnez l'entrée avec
sQ
, divisez par 4 avec/4
et enfin augmentezh
.la source
CJam, 7 octets
Essayez-le ici!
Définit un bloc sans nom qui attend l'entrée sur la pile et y laisse le résultat.
:+
additionne la liste,4/
divise le résultat par 4 et l')
incrémente.la source
Rétine ,
1817 octetsLe nombre d'octets suppose un codage ISO 8859-1.
L'entrée est séparée par des sauts de ligne.
Essayez-le en ligne!
la source
R, 22 octets
la source
JavaScript, 29 octets
la source
SILOS
100 99103 caractères + 22 pour l'entrée d'échantillonCode avec harnais de test.
entrée comme une série de commandes set pour modifier les taches du tas à partir de la tache 512.
Essayez-le en ligne!
la source
Python 2, 40 octets
la source
sum(s)
est un entier et/
en Python 2 serait une division entière lorsque les deux arguments sont des entiers.[4]
.