Votre programme devrait prendre un tableau en entrée.
Le tableau:
- Sera toujours 1 dimension
- Ne contiendra que des entiers
- Peut être vide
Le programme doit inverser le tableau, puis additionner les éléments à l'original, par exemple:
Contribution: [1, 2, 3]
Original: [1, 2, 3]
Renversé: [3, 2, 1]
[1, 2, 3]
+ + +
[3, 2, 1]
[1+3, 2+2, 3+1]
Sortie: [4, 4, 4]
Cas de test:
#In #Out
[8, 92], [100, 100]
[1, 2, 3], [4, 4, 4]
[5, 24, 85, 6], [11, 109, 109, 11]
[], []
[999], [1998]
C'est code-golf , le code le plus court (en octets) gagne!
code-golf
array-manipulation
Noah Cristino
la source
la source
Réponses:
Haskell , 20 octets
5 octets économisés en passant à un point libre comme suggéré par nimi
Essayez-le en ligne!
la source
zipWith(+)=<<reverse
.main
compilation.=<<
de la fonction monade qui est définie comme suit:(=<<) f g x = f (g x) x
. Ici, écrit en infixe:(zipWith(+) =<< reverse) x
->zipWith(+) (reverse x) x
.Gelée , 2 octets
Essayez-le en ligne!
ou
Essayez-le en ligne! (merci @ M. Xcoder pour le deuxième programme)
explication, bien que ce soit assez explicite
Pour un tableau vide
[]
, cela ne génère rien. C'est correct. La représentation par Jelly d'une liste vide n'est tout simplement rien. Notez que la représentation d'une liste avec un seul élément par Jelly n'est que l'élément lui-même. AjoutezŒṘ
au code pour voir la représentation interne de la sortie en Python.la source
[9]
il génère 18 sorties au lieu de[18]
, et 2) une fois testé,[]
il ne génère rien.+Ṛ
fonctionne aussi.JavaScript (ES6), 27 octets
Afficher l'extrait de code
la source
05AB1E , 2 octets
Essayez-le en ligne!
la source
R+
fonctionne également pour 2 octets.Python 2, 32 octets
Solution alternative sans
zip
(35 octets):Essayez-le en ligne!
la source
Python 2 , 40 octets
Essayez-le en ligne!
L'autre réponse, plus courte en Python, remplace une compréhension de liste par
map
. J'aurais aimé pouvoir faire ça plus vite. ; -;la source
Japt , 7 octets
Essayez-le en ligne! avec le
-Q
drapeau pour formater le tableau de sortie.Explication
Implicite:
U
= tableau d'entréeMappez l'entrée avec la fonction suivante ...
La valeur, plus la valeur dans le tableau d'entrée à l'index ...
-(index+1)
, qui obtient des éléments à la fin du tableau.la source
Ruby , 25 octets
Essayez-le en ligne!
la source
Mathematica, 12 octets
Essayez-le en ligne!
la source
Python 2 ,
3332 octets-1 octet grâce à @xnor
Essayez-le en ligne!
la source
l*1
enregistre un octet.l*1
, aucune élaborationl*1
fait une copie de la listel
. Si nous ne faisons pas de copie,pop()
supprimerions des éléments de la liste avant leur accès dans la boucle for.Brachylog , 6 octets
Essayez-le en ligne!
la source
C # (.NET Core) ,
61 à60 octets-1 octet grâce à TheLethalCoder
Essayez-le en ligne!
Le nombre d'octets comprend également:
Pour explication - La fonction zip dans LINQ prend deux collections et exécute la fonction donnée pour tous les éléments correspondants, c.-à-d. les deux premiers éléments ensemble, les deux seconds éléments, etc.
la source
Zip
appel à donc inutileToArray()
. Bon travail!CJam , 7 octets
Essayez-le en ligne!
la source
""
pour[]
, c'est bizarre. Ce n'est pas ta faute, juste la langue.[]
.[]
, et[4]
c'est donc bien.APL (Dyalog) , 3 octets
Essayez-le en ligne!
Explication
la source
⌽+⊢
sans entrée⍬
le vecteur vide. Sans aucun argument, il imprime le train par luiJ, 3 octets
Inverser, somme.
Essayez-le en ligne!
la source
R ,
1716 octets-1 octet grâce à djhurio
Lit de stdin; renvoie le vecteur;
numeric(0)
est le vecteur numérique de longueur nulle pour la liste vide.Essayez-le en ligne!
la source
numeric(0)
numeric(0)
dans R.rev(l<-scan())+l
, 16 octets?pryr::f(rev(x)+x)
Clojure,
2017 octets3 octets enregistrés grâce à @MattPutnam
Semble être assez compétitif avec les langues autres que le golf.
Voir en ligne
la source
rseq
au lieu dereverse
.Pyth, 3 octets
Essayez ici.
la source
sV_
PowerShell , 26 octets
Essayez-le en ligne!
Prend l'entrée en tant qu'argument de ligne de commande.
la source
C, 49 octets
la source
a,n,b
êtrea,b,n
ou quelque chose?b
n'est pas un paramètre pour la fonction, mais une définition supplémentaire insérée ici pour des raisons liées au golf.a
doit être un pointeur sur les entiers etn
doit indiquer le nombre d'entiers dans le tableau.PowerShell ,
4032 octetsEssayez-le en ligne!
Prend les entrées en tant qu'arguments de ligne de commande individuels, ce qui est autorisé en tant que format de liste natif pour PowerShell. Puis boucle à travers chaque élément (c.-à-d. Une manière plus courte de parcourir les index), en ajoutant l’élément comptant à partir de l’arrière (
-1
indexé) à l’élément actuel (0
indexé, d’où le décrément-1
). Ceux-ci sont laissés sur le pipeline et la sortie est implicite.Sauvegardé 8 octets grâce à @briantist
la source
Write-Output
se produit, il met les choses sur stdout un élément par ligne. Par exemple, vous pouvez voir ici que lorsqu’il est capturé, l’objet est bien unarray
type.param
et le remplacer1..$n
par1..($n=$args)
?Java 8,
61575653 octets-1 octet et correction de bogue grâce à @Nevay .
-3 octets grâce à @ OliverGrégoire .
(C’était un port de (et jouions au golf de
4 à8 octets) de la réponse C # de @jkelm , mais c’est maintenant une solution plus courte différente grâce à @ OliverGrégoire .)Explication:
Essayez ici.
La méthode modifie le tableau en entrée pour économiser les octets. Aucun type de retour n'est donc nécessaire.
la source
a->{for(int i=0,l=a.length;i<l/2;a[i]=a[l+~i]+=a[i++]);}
.1,2,3
(retourne4,2,4
au lieu de4,4,4
), la boucle doit être exécutée aussi longtemps que2*i<l
, pasi<l/2
.l-i-1
, mais je ne pouvais tout simplement pas en arriver là.a->{for(int l=0,r=a.length;l<r;a[l]=a[--r]+=a[l++]);}
.l
etr
est logique pour votre implémentation, donc je les ai aussi utilisés (et ajouté une explication).Ohm , 3 octets
Essayez-le en ligne!
la source
[]
cela n’affiche rien, mais c’est juste le langage.En fait , 4 octets
Essayez-le en ligne!
la source
anyfix , 3 octets
La version sur TryItOnline! est une version obsolète de anyfix, qui contient quelques erreurs fatales telles que l'impossibilité d'ajouter des listes à cause de fautes de frappe dans le code source. Utilisez le code sur GitHub à la place.
la source
Neim , 2 octets
C'est une fonction qui prend les entrées au sommet de la pile et les sorties au sommet de la pile.
Essayez-le en ligne!
la source
Röda , 22 octets
Essayez-le en ligne!
Il s'agit d'une fonction anonyme qui récupère un tableau et renvoie un flux de valeurs que le lien TIO génère en sortie, séparées sur des nouvelles lignes.
Explication
la source
JavaScript (ES6),
3433 octetsEnregistré un octet grâce à @ETHproductions.
Afficher l'extrait de code
la source
-i-1
pour+~i
.MATL , 3 octets
Essayez-le en ligne!
Extrêmement simple.
t
duplique l'entrée.P
le retourne (et l’inverse) et+
ajoute les deux tableaux par élément.la source
PHP, 59 octets
prend les arguments de la ligne de commande; sortie vide pour entrée vide
Renvoie un avertissement dans PHP> 7.0. Cette version ne (60 octets) ne:
la source