Dada una entrada int n, imprima n * invertido (n)

9

Dado un número entero n, imprimirn * reversed(n)

reversed(n)es el número que obtienes cuando tienes reverselos dígitos n.


reverse(512) = 215

reverse(1) = 1

reverse(101) = 101

>>>>>>>>

func(5) = 5*5 = 25

func(12) = 12*21 = 252

func(11) = 11*11 = 121

func(659) = 659*956 = 630004

¡El código más corto gana!

Tabla de clasificación

K Split X
fuente
3
¿Cuál es el reverso de 100?
tsh
001, pero en cualquier caso, está bien si tiene ceros adicionales en el frente
K Split X
44
¿Por qué downvote? ¿Porque este desafío es demasiado trivial (en comparación con otros desafíos, no lo es!) O porque está mal formateado / no está claro?
user202729
2
@ user202729 Voté abajo porque no vi ni anticipé mucha variedad o profundidad a las respuestas. Esta pregunta es aburrida, lo intenté. Parte de la razón por la que es aburrida es porque es trivial, lo cual creo que es una causa perfecta para rechazar una pregunta por sí solo.
Ad Hoc Garf Hunter

Respuestas:

10

05AB1E , 2 bytes

R*

Pruébalo en línea!

En 05AB1E, los enteros y las cadenas se tratan como tipos equivalentes, por lo que reversal ( R) se convierte en cadena y se invierte, mientras que multiplication ( *) trata el inverso y la entrada como enteros.

Sr. Xcoder
fuente
44
Â*es válido también: D.
Urna de pulpo mágico
4

JavaScript (SpiderMonkey) , 45 35 33 28 bytes

n=>n*[...n].reverse().join``

Pruébalo en línea!

  • Guardado 2 bytes gracias a dennis
  • Guardado 8 bytes gracias a kamoroso94
  • Guardado 2 bytes gracias a ATaco
  • Guardado 5 bytes gracias a Shaggy
Ephellon Dantzler
fuente
Bienvenido a PPCG! No tienes que contar f=; Las funciones anónimas están permitidas por defecto.
Dennis
Cambie (n+"").split("")para [...(n+"")]guardar algunos bytes. No necesita el unario más, y los paréntesis alrededor de la cadena invertida son extraños. En general, eso te ahorra 10 bytes.
kamoroso94
Puede reemplazar .join("")con .join``para guardar 2 bytes.
ATaco
Ahorre 5 bytes tomando la entrada como una cadena: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy
4

Jalea , 3 bytes

×ṚḌ

Soy nuevo en Jelly, así que avíseme si hay una manera de hacerlo en 1 o 2 bytes.

Pruébalo en línea!

Explicación

×ṚḌ    (Input: 12)

 Ṛ     Reversed decimal digits (Stack: [2, 1])
×      Multiply by input       (Stack: [24, 12])
  Ḍ    Convert to decimal      (Stack: 252)
       Implicit print
JungHwan Min
fuente
En realidad ṚḌ×sería una mejor versión. Por supuesto, esto todavía funcionaría, debido a cómo funcionan las bases.
Erik the Outgolfer
@EriktheOutgolfer Originalmente escribí eso primero, pero lo moví ×por capricho;)
JungHwan Min
4

Ruby, 25 24 bytes

->n{n*eval(n.digits*'')}

¡Pruébelo en línea! .

Integer#digits devuelve una lista de dígitos invertidos, por lo que no es necesaria una inversión adicional.

¡Gracias a @ benj2240 por jugar al golf en un byte!

Yytsi
fuente
@ benj2240 gracias! :)
Yytsi
La ruta de evaluación en realidad no funciona, ya que hará que el programa falle en 900 con error en Invalid octal digit (SyntaxError)lugar de devolver el esperado 8100 ...
Value Ink
3

ARBLE , 12 bytes

Toma entrada como int.

a*reverse(a)

Pruébalo en línea!

Un taco
fuente
Es por eso que dije entrada entera;), ¿int todavía funciona?
K Split X
@KSplitX Oh, no me di cuenta de eso. Creo que esa restricción es un poco innecesaria, pero depende de usted.
ATaco
@KSplitX fijo.
ATaco
Debería usarse n * reverse(n)para que coincida con la especificación de la pregunta palabra por palabra (dado un número entero n, imprimir n * reversed(n))
Okx
3

Python 3, 35 28 bytes

lambda m:m*int(str(m)[::-1])

Pruébalo en línea!

Ahorró 7 bytes al corregir un error señalado por Dennis.

LyricLy
fuente
No, está claro, se convierte en cadena, se [::-1]invierte, luego evaluamos xD
K Split X
Esto no funciona para la entrada 80 , ya que 08es un literal no válido (octal).
Dennis
3
Ahorro de 7 bytes solucionando un error No te encanta cuando eso sucede ...
ETHproductions
3

Haskell , 27 23 bytes

4 bytes guardados gracias a Lynn y Laikoni

(*)=<<read.reverse.show

Pruébalo en línea!

Ad Hoc Garf Hunter
fuente
1
23 bytes sin importar: ¡ Pruébelo en línea!
Laikoni
Con Control.Monadello también es de 23 bytes: ap(*)$read.reverse.show.
Laikoni
1
No hay necesidad de Control.Monad. (*)=<<read.reverse.showfunciona bien.
Lynn
@ Lynn ¡Gracias! Siento que debería haber visto eso.
Ad Hoc Garf Hunter
3

Perl 6 , 10 bytes

{$_*.flip}

Intentalo

Expandido

{       # bare block lambda with implicit parameter $_
  $_
  *
  .flip # implicit method call on $_
}
Brad Gilbert b2gills
fuente
3

C # .NET, 55 bytes

n=>{int i=n,j=0;for(;i>0;i/=10)j=j*10+i%10;return n*j;}

Explicación:

Pruébalo aquí.

n=>{           // Method with integer as both parameter and return-type
  int i=n,     //  Integer `i` (starting at the input)
      j=0;     //  Integer `j` (starting at 0)
  for(;i>0;    //  Loop as long as `i` is not 0
      i/=10)   //    After every iteration: Remove the last digit of `i`
    j=j*10     //   Add a trailing zero to `j`,
      +i%10;   //   and then sum this new `j` with the last digit of `i`
               //  End of loop (implicit / single-line body)
  return n*j;  //  Return the input multiplied with `j`
}              // End of method
Kevin Cruijssen
fuente
2

Lote, 87 bytes

@set s=%1
@set r=
:l
@set/ar=r*10+s%%10,s/=10
@if %s% gtr 0 goto l
@cmd/cset/a%1*r

Es necesario tomar la ruta aritmética aquí, ya que la inversión de cadenas falla para algunos números como 80.

Neil
fuente
2

J, 7 bytes

*|.&.":

Pruébalo en línea!

No podría pensar en una forma más corta, aunque siento que esto es bastante elegante.

Explicación

*|.&.":
   &.":  Convert to string, apply next function, then undo conversion
 |.      Reverse
*        Multiply by input
col
fuente
2

LISP, 91 64 bytes

(defun R (N) (defvar M (escribir en cadena N)) (parse-integer (reverse M))) (write (* x (R x)))

(defun R(N)(write(* N(parse-integer(reverse(write-to-string N))))))

Donde x N es su número entero con el que desea trabajar, por supuesto.

Soy bastante nuevo en programación, pero he descubierto que probar estos problemas de Code Golf ha sido una buena práctica. ¿Hay algo que me falta que pueda ayudar con esto?

EDITAR: Gracias a algunos consejos de ceilingcat, pude reducir algunos bytes. Programa antiguo conservado en tachado para referencia.

Esteta
fuente
¡Bienvenido a Code Golf! Puede eliminar algunos espacios en blanco y tal vez deshacerse de una asignación variable. Además, por convención, es posible que pueda devolver la salida en lugar de(write ...)
ceilingcat
Puede guardar un byte usando un en lambdalugar de defun. Además, lea los consejos para jugar golf en lisp
ceilingcat
2

bash, 52 48 bytes

for((i=n=$1;r=r*10+i%10*n,i/=10;));{ :;};echo $r
Nahuel Fouilleul
fuente
Puede reemplazar do...donecon llaves para guardar algunos bytes: ¡ Pruébelo en línea! . Esto es de los consejos para la publicación Bash .
Justin Mariner
gracias, me alegra
saberlo
¿No es ese concha?
Stan Strum
2

Lotes , 150 125 121 bytes (+ 5 bytes? cmd/q)

set l=%1
set n=0
set r=
:L
call set t=%%l:~%n%,1%%%
set/an+=1
if [%t%] neq [] set r=%t%%r%&goto L
set/ar=%r%*%l%
echo %r%

¡ Ahorró 25 bytes gracias a user202729 !

¡Guardado 4 bytes gracias a Matheus Avellar !

Ephellon Dantzler
fuente
97 bytes
usuario202729
O 87 bytes
usuario202729
¿No es este Batch, no Bash? El TIO para bash no funciona para esto.
Justin Mariner
Sí, así es; lo siento
Ephellon Dantzler
Puede línea que ifsea a 121 bytes: if [%t%] neq [] set r=%t%%r%&goto L. Sin embargo, creo que debes incluir 1 byte para la /Qbandera que se pasa, por cmdlo que se ejecuta con implícito@echo off
Matheus Avellar
2

> <>, 41 39 bytes

:&>:a%:}-\
/~\?)0:,a/
>l1-?\&*n;
\ +*a/

Cómo funciona:

:&

Suponga que la entrada se ha enviado a la pila ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Duplíquelo y guarde una copia en el registro.

   >:a%:}-\
   \?)0:,a/

Convierte esto a sus dígitos individuales, dejándolos en la pila.

/~
>l1-?\
\ +*a/

El valor superior siempre será un cero debido al proceso de conversión de número a dígito; déjalo caer de la pila. Ahora, mientras la longitud es> 1, multiplique el primer elemento por diez y agréguelo al elemento debajo de él. Esto da como resultado el número invertido.

      &*n;

Multiplique el número original por el reverso, imprima la respuesta y pare.

Bolce Bussiere
fuente
33 bytes
Jo King
2

Ohm v2 , 2 bytes

œΠ

Pruébalo en línea!

Explicación:

œΠ   Main wire, arguments: n

œ    Pushes [n, n.reverse]
 Π   Multiplies that array together
     Implicit output
Nick Clifford
fuente
2
permanece en el teléfono durante 4 meses : P
K3v1n
Debe permanecer en espera durante mucho tiempo para que no haya explicación
MilkyWay90
@ MilkyWay90 Todos hemos estado en espera durante un año y medio antes, ¿verdad?
Nick Clifford el
@NickClifford No todos tenemos
MilkyWay90
1

Mathematica, 19 bytes

# IntegerReverse@#&

Toma una entrada entera.

JungHwan Min
fuente
1

Casio-Basic (fx-CP400), 44 bytes

ExpToStr n,a
StrInv a,a
Print n*strToExp(a)

No hay una función integrada para invertir un número entero, pero sí hay uno para invertir una cadena.

ExpToStr n,aconvierte n en una cadena y la almacena a, luego se StrInv a,asobrescribe acon la versión invertida de sí misma. La última línea se convierte aen un número e imprime n*a.

43 bytes para el código, +1 para ingresar nen el cuadro de parámetros.

numbermaniac
fuente
1

Japt, 2 bytes

Toma la entrada como una cadena, emite un número entero.

*w

Intentalo

Lanudo
fuente
Vaya, pensé que tendría que ser por lo menos 4 bytes ... supongo que es sólo un 3 aunque teniendo de entrada como un entero*sw
ETHproductions
@ETHproductions: sí, eso es lo que tenía originalmente.
Shaggy
1

MATLAB / Octave , 33 31 bytes

@(n)str2num(flip(int2str(n)))*n

Pruébalo en línea!

Octave / MATLAB función anónima. Este es un enfoque bastante ingenuo: convierte el entero en una cadena, voltea la cadena, vuelve a convertir el resultado en un entero y lo multiplica por el original.


  • Ahorre 2 bytes usando en fliplugar de fliplr.
Tom Carpenter
fuente
1

PHP, 23 + 1 bytes

<?=$argn*strrev($argn);

Guardar en archivo y ejecutar como tubería con -nF.

Tito
fuente
1

MATL , 5 bytes

VPUG*

Pruébalo en línea!

Explicación: Vconvierte en cadena, Pvoltea, Uvuelve a convertir en numérico, Gcopia la entrada original nuevamente y las *multiplica.

B. Mehta
fuente
1

Encantamientos rúnicos , 11 10 bytes

i:0qr͍n*@

Pruébalo en línea!

Toma la entrada, la duplica, coacciona una copia a una cadena, la invierte, la vuelve a convertir en un valor numérico, la multiplica y genera el resultado.

0qrealiza la coerción a una cadena concatenando un cero en el extremo. No hay un ToString()operador explícito , por lo que este es el método más corto en este caso específico donde el 0 intercambiado al principio no altera el valor numérico resultante. Gracias a ASCII-only por este -1 byte.

Draco18s ya no confía en SE
fuente
10
Solo ASCII
@ Solo ASCII Lo suficientemente justo. Termino jugando con la mayoría de estos en el trabajo y no siempre vuelvo a visitarlos cuando voy a publicarlos en casa.
Draco18s ya no confía en SE