Considérez un flux / fichier avec un entier par ligne. Par exemple:
123
5
99
Votre code doit afficher la somme de ces nombres, c'est-à-dire 227
.
Le format d'entrée est strictement un entier par ligne. Vous ne pouvez pas, par exemple, supposer que l'entrée se trouve sur une seule ligne sous la forme d'un tableau d'entiers.
Vous pouvez saisir des données soit de STDIN, sous la forme d'un nom de fichier, soit d'un fichier avec un nom de votre choix; vous pouvez choisir lequel. Aucun autre moyen d'obtenir des entrées n'est autorisé.
L'entrée contiendra au moins un entier. Vous pouvez supposer que tous les entiers sont non négatifs et que leur somme totale est inférieure à .232
code-golf
string
arithmetic
Dennis
la source
la source
Réponses:
05AB1E , 2 octets
Explication:
Essayez-le en ligne!
la source
Bash + coreutils, 16 octets
Essayez-le en ligne!
Il y a deux espaces après le
\
. Cela fonctionne également pour les nombres négatifs.Explication:
Vous vous demandez peut-être pourquoi ce
tr \\n +|bc
n'est pas mieux, car il transforme directement les sauts de ligne en «+». Eh bien, cela a 2 erreurs imprévues:la source
tr \\n +|bc
? Si tel est le cas, veuillez consulter l'explication mise à jour. Bonne question.paste -s -d+|bc
est de 15 octetsxargs|tr \ +
dans ce cas, ne fait rien et bc reçoit le numéro et l'imprime à nouveau.MATL , 2 octets
Cela attend l'entrée dans un fichier texte appelé
defin
.Gif ou ce n'est pas arrivé :
Ou essayez-le en ligne! ( merci à Dennis pour la mise en place! )
Explication
Lorsqu'un programme MATL est exécuté, si un fichier appelé
defin
est trouvé (le nom fait référence à "entrée par défaut"), son contenu est automatiquement chargé sous forme de texte et poussé vers la pile sous forme de chaîne avant d'exécuter le code.La fonction
U
évalue la chaîne pour la convertir en un vecteur de colonne de nombres ets
calcule la somme, qui est implicitement affichée.la source
Japt , 2 octets
Explication
Essayez-le en ligne!
la source
Coller + bc, 13 octets
Explication:
Une autre réponse shell!
la source
paste -s -d+|bc
et ne savais pas que je pouvais consolider les commutateurs. Soigné!Perl 6 , 13 octets
L'essayer
Explication
lines()
renvoie une liste de lignes$*IN
ou$*ARGFILES
un descripteur de ligne de commande «magique».sum(…)
a été ajouté à Perl 6 pour permettre[+] List
d'être optimisé pour les positionnels qui peuvent calculer leur somme sans générer toutes leurs valeurs comme1..100000
(je pensais juste que
sum
c'était trop mignon ici pour l'utiliser[+]
comme je le ferais normalement)say(…)
appeler la.gist
méthode sur son entrée et l'imprimer avec une nouvelle ligne supplémentaire.la source
$a+=$_ for <>;print $a
en Perl 5, mais il peut y avoir un chemin plus court.C, 53 octets
la source
Python 3 , 28 octets
Tiré de cette astuce . On m'a dit que cela ne fonctionnerait pas sous Windows.
Essayez-le en ligne!
la source
Rétine ,
117 octets-4 merci à Martin Ender
Essayez-le en ligne!
Convertir en unaire:
Comptez le nombre de
1
s:la source
Brain-Flak , 20 octets
Essayez-le en ligne!
Explication
Ceci est un golf hors d' une solution faite par Riley dans le chat . Sa solution était:
Si vous êtes familier avec Brain-Flak, cela va de soi. Il pousse la hauteur de la pile et affiche une valeur pendant le décompte, à la fin, il pousse la somme de tous les passages.
C'est un très bon golf mais il met les deux à zéro
{}
et([])
cependant ceux-ci auront des valeurs qui ne diffèrent que par un, donc si à la place nous retirons les masques et rendons l'un des deux négatifs, ils devraient presque annuler.Puisqu'ils diffèrent toujours par un, nous avons la malheureuse circonstance où notre réponse est toujours décalée par la hauteur de la pile. Pour y remédier, il suffit de déplacer le début de la poussée pour englober la première hauteur de pile.
la source
Python 2, 40 octets
la source
R, 11 octets
scan
prend l'entrée, un nombre par ligne. Etsum
bien, des sommes.la source
Perl 5 , 9 octets
8 octets de code +
-p
indicateur.Essayez-le en ligne!
Avec
-p
, l'entrée est lue une ligne à la fois, stockée à$_
chaque fois. Nous utilisons$\
comme accumulateur, car grâce au-p
drapeau, il est implicitement imprimé à la fin. Les éléments inégalés}{
sont utilisés de sorte que le-p
drapeau ne s'imprime qu'une$\
fois à la fin au lieu d'imprimer$_
et$\
à chaque ligne, il se lit comme d' habitude .la source
)(
accolades
, apparemment.Pure Bash,
3736 octetsMerci à @KevinCruijssen pour un octet!
Essayez-le en ligne!
la source
do ((
? Le TIO semble fonctionner.Haskell, 32 octets
Essayez-le en ligne! .
interact
collecte l'intégralité de l'entrée de stdin, la transmet à la fonction donnée comme argument et affiche la chaîne qu'il récupère de cette fonction. La fonction est:la source
lines.map(_.toInt)
car sum attend une sorte de conversion implicite numérique de String ou dans ce cas une conversion explicite.PHP, 22 octets
Cela suppose qu'il existe un fichier nommé "t" avec une liste d'entiers.
file()
ouvre un fichier et renvoie un tableau avec chaque ligne stockée un élément séparé dans le tableau.array_sum()
additionne tous les éléments d'un tableau.la source
Awk, 19 octets
Explication:
la source
{s+=$1}END{print s}
:)dc , 14 octets
Essayez-le en ligne!
Explication:
la source
CJam , 5 octets
Essayez-le en ligne!
Comment ça marche
la source
1b
somme des nombres?[<x> <y> <z> <w>]<b>b
calcule simplement b³x + b²y + bz + w . Lorsque b = 1 , cela donne x + y + z + w .Python,
3830 octetsEn python, les fichiers sont ouverts par
open('filename')
(évidemment). Ce sont cependant des itérables. Chaque fois que vous parcourez le fichier, vous obtenez la ligne suivante. La carte itère donc sur chaque liste, l'appelleint
, puis additionne la liste résultante.Appelez avec le nom de fichier en entrée. (ie
f('numbers.txt')
)8 octets enregistrés en utilisant
map(int, open(n))
au lieu d'une compréhension de liste. Code d'origine:la source
Mathematica, 19 octets
Suppose l'environnement de bloc-notes de Mathematica.
Attend que l'entrée soit dans un fichier
a
.la source
Total @ Flatten @ Import @ "a"
ou même"a" // Import // Flatten // Total
. ;)Tr[#&@@@Import@#]&
également autorisé?Gelée ,
98 octetsSTDIN n'est pas vraiment le truc de Jelly ...
Essayez-le en ligne!
Comment ça marche
la source
F
pourrait aussi être unṖ
, pour plus de clarté.Brachylog , 4 octets
Essayez-le en ligne!
Explication
la source
Pure bash, 30
Essayez-le en ligne.
read
s le fichier d'entrée en une seule fois dans la variableb
.-d_
indiqueread
que le délimiteur de ligne est_
au lieu denewline${b//'
newline'/+}
remplace les sauts de ligneb
avec+
echo $[ ... ]
évalue arithmétiquement l'expression résultante et la renvoie.la source
$[]
section affichera une erreur en raison d'un «+» de fin.read
dernières lignes finales soient ignorées , même si le délimiteur de ligne est remplacé par_
. C'est peut-être une mise en garderead
, mais cela fonctionne bien pour cette situation.Vim, 16 octets / touches
Étant donné que V est rétrocompatible, vous pouvez l' essayer en ligne!
la source
Pyth , 3 octets
Essayez-le en ligne!
la source
jq , 5 octets
add
, plus l'indicateur de ligne de commande-s
.Par exemple:
la source
-sadd
ne fonctionnera pas, comptez l'espace.add
(3 octets) et vous devez ajouter 2 octets pour l'-s
indicateur. L'espace ne compte pas comme le code ou le drapeau: c'est le séparateur de ligne de commande utilisé par le langage.-s
indicateur est l'abréviation de " --slurp " (lire le flux d'entrée entier dans un grand tableau et exécuter le filtre une seule fois), ce qui change à la fois la façon dontjq
les données d'entrée sont interprétées et la façon dont il exécute le code. Ce n'est pas comme le-e
danssed
lequel indique simplementsed
que la chaîne suivante est du code. Le-s
est plus comme une partie dujq
langage lui-même, et donc cet espace de 6 octets le serait aussi.En fait , 2 octets
Essayez-le en ligne!
Explication:
la source
dc, 22
Cela semble plus long qu'il ne devrait l'être, mais il est difficile de décider quand la fin du fichier est atteinte. La seule façon de penser à cela est de vérifier la longueur de la pile après la
?
commande.Essayez-le en ligne .
Notez que la macro
m
est appelée récursivement. Moderndc
implémente la récursivité de queue pour ce genre de chose, donc il ne devrait pas y avoir de soucis pour déborder la pile.la source
Pyke , 4 octets
Essayez-le en ligne!
la source