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

code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

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.


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

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

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!



@ 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!


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.


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

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

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.


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


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.


¡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

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 !




¿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.



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

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

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.


1

Japt, 2 bytes

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

*w

Intentalo


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.



1

PHP, 23 + 1 bytes

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

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



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.


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.



@ 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.