Dado un entero positivo n como entrada, genera la suma del rango inverso de n.
Una suma de rango invertida se crea haciendo un rango inclusivo hasta n, comenzando con 1 e incluyendo n, invirtiendo cada uno de los números dentro y sumándolo.
Ejemplo:
Esto es lo que sucedería para una entrada de 10:
Distancia: [1,2,3,4,5,6,7,8,9,10]
Reverso: [1,2,3,4,5,6,7,8,9,01]
(los números 1-char invertidos son ellos mismos, 10 invertidos es 01 o 1)
Suma: 46
Los números con más de 3 dígitos se invierten de la misma manera que los números con 2 dígitos. Por ejemplo, 1234 se convertiría en 4321.
Casos de prueba:
Input -> Output
10 -> 46
5 -> 15
21 -> 519
58 -> 2350
75 -> 3147
999 -> 454545
Aquí se pueden encontrar casos de texto completos para la entrada de 999 , muchas gracias a @ fireflame241.
code-golf
number
arithmetic
Camarada SparklePony
fuente
fuente
Respuestas:
05AB1E , 3 bytes
Código
Utiliza la codificación 05AB1E .Pruébalo en línea!
Explicación
fuente
Reverse
debería serReverse each
realmente ...R
, mientrasí
que "revertir cada uno".Bash + GNU utils, 24
Pruébalo en línea .
Explicación
fuente
JavaScript (ES6), 42 bytes
Lamentablemente, mi solución doblemente recursiva favorita es 3 bytes más larga:
fuente
Perl 6 , 20 bytes
Pruébalo
Expandido:
fuente
».flip
llama al.flip
método en cada uno de los valores en el Rango. La siguiente forma más corta de hacer esto.map(*.flip)
es 5 bytes más.».flip
una llamada de método hiper. Si bien puedo dividir el»
y.flip
mediante el uso de un unspace\
como lo hice antes; eso dificultaría su comprensión, ya que parecería el final de unaqqww/ /
construcción (« a b "c d" »
).Retina ,
413635 bytesPruébalo en línea! El enlace incluye casos de prueba. Editar: Guardado 5 bytes gracias a @FryAmTheEggman. Guardado 1 byte gracias a @ PunPun1000. Explicación:
Convierte a unario.
Crea un rango de
1
an
.Convertir de nuevo a decimal.
Invierte cada número.
Convertir de nuevo a unario.
Suma y convierte de nuevo a decimal.
fuente
¶
en el.+¶
partido coincidirá a través de las líneasO^$s`.
invertir toda la cadena también funciona.Jalea , 4 bytes
Pruébalo en línea!
¿Cómo?
fuente
Haskell, 34 bytes
Simple y directo.
fuente
C (gcc) , 63 bytes
Pruébalo en línea!
fuente
cQuents , 4 bytes
Pruébalo en línea!
Explicación
fuente
Python 2 , 38 bytes
No se pueden calcular términos más altos que el límite de recursividad:
Pruébalo en línea!
fuente
import sys
ysys.setrecursionlimit()
si desea manejar números más grandes, en el encabezado tio.Brachylog , 4 bytes
Pruébalo en línea!
Explicación
fuente
Röda ,
564136 bytes15 bytes guardados gracias a @fergusq
Pruébalo en línea!
Esta es una función anónima que toma un número entero de la secuencia de entrada y genera un número entero en la secuencia de salida.
Explicación
fuente
[::-1]
lugar de invertir. Además, `$_
` es más corto que_..""
y no se necesitan paréntesis después de parseInteger.C # (.NET Core) ,
10397 bytesPruébalo en línea!
El enlace TIO genera todos los resultados del 1 al 999, así que no dude en consultar mi trabajo.
Esperaba que esto fuera un poco más corto, pero resulta que
Reverse()
devuelve unaIEnumerable<char>
cadena en lugar de otra, por lo que tuve que agregar un poco más para convertirla nuevamente en una cadena para poder analizarla en un int. Tal vez hay una forma más corta de irIEnumerable<char>
a int correctamente.De menor importancia, esto también utiliza las funcionesRange()
Reverse()
ySum()
todo en orden.-6 bytes gracias a TheLethalCoder
fuente
new int[r]
y.Select((_,n)=>...)
te ahorrará bytes.new int[r+1]
obtener la salida correcta ya que el índice comienza en 0, pero aún guarda algunos bytes. RIPRange()
aunqueRubí,
56, 52, 41,39 bytesRuby, 34 bytes (si lambda param es una cadena)
Gracias a @Unihedron por la segunda solución.
fuente
->n{
funciona igual de bien?a..?z
y?a1..?h8
(aunque es mejor tener cuidado con el segundo formato: D)succ
y 2. (si el valor inicial o final no se implementasucc
) deben ser numéricos, por lo queint..string
serán rechazados como "Valor incorrecto para el rango". Lo inverso es cierto (pero, por desgracia, no hay rango descendente), o(?1..n)
puede usarse en su lugarMathematica, 47 bytes
Pruébalo en línea! (para trabajar en matemáticas necesitamos reemplazar "Tr" con "Total")
fuente
Tr@*IntegerReverse@*Range
Carbón ,
1413 bytes-1 byte gracias a Carlos Alejo
Pruébalo en línea! El enlace es a la versión detallada.
Explicación
fuente
»
. Por cierto, ¿enReduce
qué parte de la wiki de Carbón está documentado el operador?Modulo
puede usar el operador para formatear cadenas en carbón?Magneson , 102 bytes
Eso no es muy visible, así que aquí hay una versión ampliada (Nota: en realidad no se ejecutará, y aún no es muy bonita)
Magneson opera analizando una imagen y evaluando comandos de los colores de los píxeles que lee. Entonces, al recorrer la imagen para este desafío, tenemos:
R: 0, G: 1, B: 1
es un comando de asignación de enteros, que toma una cadena para el nombre de la variable y el valor a asignar. Usaremos esto para almacenar la suma total.R: 0, G: 1, B: 0
es una cadena preconstruida con el valorVAR_1
(Nota: Esto es solo mientras pedimos una cadena; el código de color tiene una función separada cuando se usa en otro lugar).R: 3, G: 0, B: 0
Es un número sin procesar. Magneson maneja los números estándar al requerir que el componente Rojo sea exactamente 3, y luego forma un número usando el valor azul directamente más el valor verde multiplicado por 256. En este caso, solo estamos obteniendo el número 0.R: 0, G: 1, B: 1
es otro comando de asignación de enteros. Esta vez, estamos almacenando una variable de iteración, para realizar un seguimiento de en qué número estamosR: 0, G: 1, B: 1
es una cadena preconstruida con el valorVAR_2
(Una vez más, solo cuando necesitamos una cadena)R: 3, G: 0, B: 0
es el número 0, una vez más. Sobre las partes interesantes ahora.R: 1, G: 0, B: 0
indica el inicio de un bucle. Esto toma un número y repite el siguiente fragmento de código que muchas veces.R: 2, G: 0, B: 0
es la función STDIN, o al menos es cuando necesitamos un número. Esto lee una línea de entrada de la consola y la convierte en un número, ya que pedimos un número.R: 0, G: 8, B: 0
comienza nuestro código de bucle y es un comando aditivo. Esto agrega un número a una variable entera y, por lo tanto, toma una cadena para el nombre de la variable y el número que se agrega.R: 0, G: 1, B: 1
es la cadena preconstruida paraVAR_2
, que es nuestra variable de iteración.R: 3, G: 0, B: 1
es un número sin procesar, pero esta vez es el número 1.R: 0, G: 8, B: 0
Es otro comando adicional.R: 0, G: 1, B: 0
es la cadena paraVAR_1
, que es nuestra suma total.R: 0, G: 3, B: 0
es una función que invierte una cadena. En el contexto de pedir un número, luego convierte la cadena invertida en un número.R: 0, G: 2, B: 1
es un comando de recuperación de enteros y recuperará el número almacenado en una variable proporcionada. En el contexto de pedir una cadena (como el comando inverso), convierte el número en una cadena.R: 0, G: 1, B: 1
es el nombreVAR_2
; Nuestra variable de iteración.R: 1, G: 0, B: 1
es el marcador para finalizar el bucle y volver al inicio del bucle si no se cumplen los criterios (por lo tanto, si necesitamos seguir en bucle). De lo contrario, continúe.R: 0, G: 0, B: 1
es un comando println muy simple y toma una cadena.R: 0, G: 2, B: 1
recupera un entero de una variableR: 0, G: 1, B: 0
es el nombre de nuestra variable suma total,VAR_1
En general, el programa:
VAR_1
yVAR_2
VAR_2
VAR_2
aVAR_1
VAR_1
fuente
Python 2 ,
5047 bytes-3 bytes gracias a officialaimm!
Pruébalo en línea!
fuente
str
guardar 3 bytes.CJam , 12 bytes
Pruébalo en línea!
-1 gracias a Business Cat .
Explicación:
fuente
,
APL (Dyalog) ,
107 bytes3 bytes de golf gracias a @ Adám al convertir a un tren desde un tren
Pruébalo en línea!
fuente
+/⍎⌽⍕⍳⎕
¨
era inteligente :)Java 8, 97 bytes
EDITAR
Según el comentario de
Kevin Cruijssen
, me gustaría mejorar mi respuesta.Java 8, 103 bytes
fuente
Integer.valueOf
se puede jugar al golfnew Integer
y.reverse().toString()
se puede jugar al golf.reverse()+""
. Además, debe incluir las importaciones requeridas y los parámetros lambda, comojava.util.stream.IntStream
yn->
antes. Y también puedes jugar al golfIntStream
yInteger
aLongStream
yLong
. La respuesta final serán->java.util.stream.LongStream.range(1,n+1).map(i->new Long(new StringBuffer(""+i).reverse()+"")).sum()
( 103 bytes : su respuesta actual con importación adicional y parámetro lambda sería de 117 bytes ). ¡Aún así +1, buena respuesta!Japt ,
75 bytes-2 bytes gracias a @Shaggy.
Pruébalo en línea!
Explicación
Solución anterior, 7 bytes
Mantener esto ya que es un uso realmente genial
z2
.Pruébalo en línea!
Explicación
fuente
z2
en una matriz plana es lo mismo quew
... uhm ... disculpa mi insuficiencia en Japt ...õ_swÃx
gracias a la nueva incorporación deN.s(f)
.õs xw
por 5 bytes.z2
truco; eso fue bastante genio. Tenga en cuenta que no competir ya no es una cosa .C ++, 146 bytes
fuente
auto
.auto
se necesita una palabra claveusing namespace std;
guardar bytes.Casco ,
7 63 bytesPruébalo en línea!
Ungolfed / Explicación
fuente
Perl 5 ,
29 2722 + 1 (-p
) = 23 bytesPruébalo en línea!
fuente
map$r+=reverse,1..<>;say$r
.-p
RProgN 2 , 8 bytes
Explicado
Pruébalo en línea!
fuente
Pyth ,
86 bytes-2 bytes gracias a FryAmTheEggman!
Pruébalo en línea!
fuente
sms_`dS
, que no abusa implícitamenteU
al final.Tcl , 66 bytes
Pruébalo en línea!
fuente
Neim , 4 bytes
Pruébalo en línea!
Explicación
fuente
𝐈Ψ𝐫𝐬
(cree un rango inclusivo, invierta cada elemento, suma)Ψ
token existía! definitivamente lo habría usado en retrospectiva. realmente agradableC (gcc) , 71 bytes
Pruébalo en línea!
fuente
f()
devuelve su resultado sin ningunareturn
declaración? ¿Lae=a
instrucción manipula los registros de tal manera que el resultado se almacena en el mismo registro que el utilizado por los valores devueltos?