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
Reversedebería serReverse eachrealmente ...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
».flipllama al.flipmé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.».flipuna llamada de método hiper. Si bien puedo dividir el»y.flipmediante 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
1an.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 sysysys.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..?zy?a1..?h8(aunque es mejor tener cuidado con el segundo formato: D)succy 2. (si el valor inicial o final no se implementasucc) deben ser numéricos, por lo queint..stringserá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@*RangeCarbó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, ¿enReducequé parte de la wiki de Carbón está documentado el operador?Modulopuede 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: 1es 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: 0es 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: 0Es 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: 1es 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: 1es una cadena preconstruida con el valorVAR_2(Una vez más, solo cuando necesitamos una cadena)R: 3, G: 0, B: 0es el número 0, una vez más. Sobre las partes interesantes ahora.R: 1, G: 0, B: 0indica 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: 0es 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: 0comienza 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: 1es la cadena preconstruida paraVAR_2, que es nuestra variable de iteración.R: 3, G: 0, B: 1es un número sin procesar, pero esta vez es el número 1.R: 0, G: 8, B: 0Es otro comando adicional.R: 0, G: 1, B: 0es la cadena paraVAR_1, que es nuestra suma total.R: 0, G: 3, B: 0es 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: 1es 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: 1es el nombreVAR_2; Nuestra variable de iteración.R: 1, G: 0, B: 1es 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: 1es un comando println muy simple y toma una cadena.R: 0, G: 2, B: 1recupera un entero de una variableR: 0, G: 1, B: 0es el nombre de nuestra variable suma total,VAR_1En general, el programa:
VAR_1yVAR_2VAR_2VAR_2aVAR_1VAR_1fuente
Python 2 ,
5047 bytes-3 bytes gracias a officialaimm!
Pruébalo en línea!
fuente
strguardar 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.valueOfse puede jugar al golfnew Integery.reverse().toString()se puede jugar al golf.reverse()+"". Además, debe incluir las importaciones requeridas y los parámetros lambda, comojava.util.stream.IntStreamyn->antes. Y también puedes jugar al golfIntStreamyIntegeraLongStreamyLong. 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
z2en una matriz plana es lo mismo quew... uhm ... disculpa mi insuficiencia en Japt ...õ_swÃxgracias a la nueva incorporación deN.s(f).õs xwpor 5 bytes.z2truco; eso fue bastante genio. Tenga en cuenta que no competir ya no es una cosa .C ++, 146 bytes
fuente
auto.autose 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.-pRProgN 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ícitamenteUal 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 ningunareturndeclaración? ¿Lae=ainstrucción manipula los registros de tal manera que el resultado se almacena en el mismo registro que el utilizado por los valores devueltos?