Seu programa deve ter uma matriz como entrada.
A matriz:
- Sempre será unidimensional
- Contém apenas números inteiros
- Pode estar vazio
O programa deve reverter a matriz e adicione os elementos ao original, por exemplo:
Entrada: [1, 2, 3]
Original: [1, 2, 3]
Invertida: [3, 2, 1]
[1, 2, 3]
+ + +
[3, 2, 1]
[1+3, 2+2, 3+1]
Saída: [4, 4, 4]
Casos de teste:
#In #Out
[8, 92], [100, 100]
[1, 2, 3], [4, 4, 4]
[5, 24, 85, 6], [11, 109, 109, 11]
[], []
[999], [1998]
Este é o código-golfe , o código mais curto (em bytes) vence!
code-golf
array-manipulation
Noah Cristino
fonte
fonte
Respostas:
Haskell , 20 bytes
Economize 5 bytes mudando para um ponto livre, conforme sugerido por nimi
Experimente online!
fonte
zipWith(+)=<<reverse
.main
compilação.=<<
da Mônada função que é definido como:(=<<) f g x = f (g x) x
. Aqui, escrito em infix:(zipWith(+) =<< reverse) x
->zipWith(+) (reverse x) x
.Geléia , 2 bytes
Experimente online!
ou
Experimente online! (obrigado @Mr. Xcoder pelo segundo programa)
explicação, embora seja bastante auto-explicativa
Para uma matriz vazia
[]
, isso não gera nada. Está correto. A representação de Jelly de uma lista vazia é simplesmente nada. Observe que a representação de Jelly de uma lista com um único elemento é apenas o próprio elemento. AnexeŒṘ
ao código para ver a representação interna do Python da saída.fonte
[9]
ele gera 18 em vez de[18]
e 2) quando testado[]
, não produz nada.+Ṛ
funciona tambémJavaScript (ES6), 27 bytes
Mostrar snippet de código
fonte
05AB1E , 2 bytes
Experimente online!
fonte
R+
também funciona para 2 bytes.Python 2, 32 bytes
Solução alternativa sem
zip
(35 bytes):Experimente online!
fonte
Python 2 , 40 bytes
Experimente online!
A outra resposta Python mais curta substitui a compreensão da lista
map
. Gostaria de ter pensado em fazer isso mais rápido. ; -;fonte
Japonês , 7 bytes
Experimente online! com o
-Q
sinalizador para formatar a matriz de saída.Explicação
Implícito:
U
= matriz de entradaMapeie a entrada pela seguinte função ...
O valor, mais o valor na matriz de entrada no índice ...
-(index+1)
, que obtém elementos do final da matriz.fonte
Ruby, 25 bytes
Try it online!
fonte
Mathematica, 12 bytes
Try it online!
fonte
Python 2,
3332 bytes-1 byte thanks to @xnor
Try it online!
fonte
l*1
saves a byte.l*1
, any elaborationl*1
makes a copy of the listl
. If we would not make a copy,pop()
would delete elements from the list before they were accessed in the for loop.Brachylog, 6 bytes
Try it online!
fonte
C# (.NET Core),
6160 bytes-1 byte thanks to TheLethalCoder
Try it online!
Byte count also includes:
For explanation - Zip function in LINQ takes two collections and executes given function for all corresponding elements, ie. both first elements together, both second elements etc.
fonte
Zip
call to so no need for theToArray()
. Nice job!CJam, 7 bytes
Try it online!
fonte
""
for[]
, that's weird. Not your fault just the language.[]
.[]
, and[4]
, so it's fine.APL (Dyalog), 3 bytes
Try it online!
Explanation
fonte
⌽+⊢
with no input⍬
, the empty vector. With no argument, it prints the train by itselfJ, 3 bytes
Reverse, sum.
Try it online!
fonte
R,
1716 bytes-1 byte thanks to djhurio
Reads from stdin; returns the vector;
numeric(0)
is the zero-length numeric vector for the empty list.Try it online!
fonte
numeric(0)
numeric(0)
in R.rev(l<-scan())+l
, 16 bytes?pryr::f(rev(x)+x)
Clojure,
2017 bytes3 bytes saved thanks to @MattPutnam
Seems to be quite competitive with non-golfing languages.
See it online
fonte
rseq
instead ofreverse
.Pyth, 3 bytes
Try it here.
fonte
sV_
PowerShell, 26 bytes
Try it online!
Takes input as command-line arguments.
fonte
C, 49 bytes
fonte
a,n,b
bea,b,n
or something?b
isn't a parameter for the function, just an extra definition stuffed in there for golfing reasons.a
must be a pointer to integers, andn
must be how many integers there are in the array.PowerShell,
4032 bytesTry it online!
Takes input as individual command-line arguments, which is allowed as one of the native list format for PowerShell. Then loops through each element (i.e., a shorter way of looping through the indices), adding the element counting from the back (
-1
indexed) to the current element (0
indexed, hence the decrement-1
). Those are left on the pipeline and output is implicit.Saved 8 bytes thanks to @briantist
fonte
Write-Output
happens, it puts things on stdout one item per line. For example, you can see here that, when captured, the object is indeed anarray
type.param
and then replace1..$n
with1..($n=$args)
?Java 8,
61575653 bytes-1 byte and bug-fixed thanks to @Nevay.
-3 bytes thanks to @OliverGrégoire.
(It was a port of (and golfed by
48 bytes) of @jkelm's C# answer, but now it's a different shorter solution thanks to @OliverGrégoire.)Explanation:
Try it here.
The method modifies the input-array to save bytes, so no need for a return-type.
fonte
a->{for(int i=0,l=a.length;i<l/2;a[i]=a[l+~i]+=a[i++]);}
.1,2,3
(returns4,2,4
instead of4,4,4
), the loop has to run as long as2*i<l
, noti<l/2
.l-i-1
, just couldn't come up with it..a->{for(int l=0,r=a.length;l<r;a[l]=a[--r]+=a[l++]);}
.l
andr
makes sense for your implementation, so I've used those as well (and added an explanation).Ohm, 3 bytes
Try it online!
fonte
[]
it doesn't output anything but that's just the language.Actually, 4 bytes
Try it online!
fonte
anyfix, 3 bytes
The version on TryItOnline! is an outdated version of anyfix, which contains a few fatal errors such as not being able to add lists because of typos in the source code. Use the code on GitHub instead.
fonte
Neim, 2 bytes
This is a function that takes input on the top of the stack and outputs on the top of the stack.
Try it online!
fonte
Röda, 22 bytes
Try it online!
This is an anonymous function that takes in an array and returns a stream of values, which the TIO link outputs separated over newlines.
Explanation
fonte
JavaScript (ES6),
3433 bytesSaved a byte thanks to @ETHproductions.
Show code snippet
fonte
-i-1
to+~i
.MATL, 3 bytes
Try it online!
Extremely straightforward.
t
duplicates the input.P
flips (reverses) it, and+
adds the two arrays element wise.fonte
PHP, 59 bytes
takes input from command line arguments; empty output for empty input
Yields a warning in PHP>7.0. This version does not (60 bytes):
fonte