Dato un input int n, stampa n * invertito (n)


9

Dato un numero intero n, stampan * reversed(n)

reversed(n)è il numero che ottieni quando hai reversele cifre di 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

Vince il codice più corto!

Classifica

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
Qual è il contrario di 100?
TSH

001, ma in ogni caso, va bene se hai degli zeri aggiuntivi davanti
K Split X

4
Perché votare? Perché questa sfida è troppo banale (rispetto ad altre sfide, non lo è!) O perché è mal formattata / poco chiara?
user202729

2
@ user202729 Ho annullato il voto perché non ho visto o anticipato molta varietà o profondità nelle risposte. Questa domanda è noiosa, l'ho provata. Parte del motivo per cui è noioso è perché è banale, che penso sia una causa perfettamente giusta per sottovalutare una domanda da sola.
Ad Hoc Garf Hunter,

Risposte:


10

05AB1E , 2 byte

R*

Provalo online!

In 05AB1E, numeri interi e stringhe sono trattati come tipi equivalenti, quindi reversal ( R) converte in stringa e *reverse , mentre la moltiplicazione ( ) considera il reverse e l'input come numeri interi.


4
Â*è valido anche: D.
Magic Octopus Urn,

4

JavaScript (SpiderMonkey) , 45 35 33 28 byte

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

Provalo online!


Benvenuti in PPCG! Non devi contare f=; le funzioni anonime sono consentite per impostazione predefinita.
Dennis,

Esci (n+"").split("")per [...(n+"")]salvare qualche byte. Non è necessario il plus unario e le parentesi attorno alla stringa invertita sono estranee. Tutto sommato, ciò consente di risparmiare 10 byte.
kamoroso94,

È possibile sostituire .join("")con .join``per salvare 2 byte.
ATaco,

Salva 5 byte prendendo l'input come stringa: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy

4

Gelatina , 3 byte

×ṚḌ

Sono nuovo di Jelly, quindi per favore fatemi sapere se esiste un modo per farlo in 1 o 2 byte!

Provalo online!

Spiegazione

×ṚḌ    (Input: 12)

 Ṛ     Reversed decimal digits (Stack: [2, 1])
×      Multiply by input       (Stack: [24, 12])
  Ḍ    Convert to decimal      (Stack: 252)
       Implicit print

In realtà ṚḌ×sarebbe una versione migliore. Ovviamente funzionerebbe ancora, a causa del modo in cui funzionano le basi.
Erik the Outgolfer,

@EriktheOutgolfer Inizialmente l'ho scritto per primo, ma ho commosso ×per fantasia;)
JungHwan Min

4

Rubino, 25 24 byte

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

Provalo online! .

Integer#digits restituisce un elenco di cifre invertite, quindi non è necessario un ulteriore inversione.

Grazie a @ benj2240 per aver giocato a golf un byte!



@ benj2240 grazie! :)
Yytsi,

La route eval in realtà non funziona, in quanto causerà un errore del programma su 900 con errore Invalid octal digit (SyntaxError)invece di restituire il previsto 8100 ...
Value Ink


3

ARBLE , 12 byte

Accetta input come int.

a*reverse(a)

Provalo online!


Ecco perché ho detto input intero;), int funziona ancora?
K Split X

@KSplitX Oh, non me ne sono accorto. Penserei che la restrizione sia un po 'superflua, ma dipende da te.
ATaco,

@KSplitX Risolto.
ATaco,

Dovrebbe usare in n * reverse(n)modo che corrisponda alla specifica parola per parola della parola (Dato un numero intero n, stampa n * reversed(n))
Okx

3

Python 3, 35 28 byte

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

Provalo online!

Salvataggio di 7 byte risolvendo un bug segnalato da Dennis.


No, è chiaro, ti converti in stringa, la [::-1]inverte, quindi valutiamo xD
K Split X

Questo non funziona per l'ingresso 80 , poiché 08è un valore letterale (ottale) non valido.
Dennis,

3
Salvataggio di 7 byte
risolvendo



3

C #. NET, 55 byte

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

Spiegazione:

Provalo qui.

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

Lotto, 87 byte

@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

È necessario prendere la via aritmetica qui poiché l'inversione di stringa non riesce per alcuni numeri come 80.


2

J, 7 byte

*|.&.":

Provalo online!

Non riuscivo a pensare a un modo più breve, anche se mi sembra che sia abbastanza elegante.

Spiegazione

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


2

LISP, 91 64 byte

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

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

Dove x N è il tuo numero intero con cui vuoi lavorare, ovviamente.

Sono abbastanza nuovo nella programmazione, ma ho scoperto che provare questi problemi con Code Golf è stata una buona pratica. C'è qualcosa che mi manca che potrebbe aiutare in questo?

EDIT: grazie ad alcuni suggerimenti da ceilingcat, sono stato in grado di radere qualche byte. Vecchio programma conservato in barrato per riferimento.


Benvenuti in Code Golf! È possibile eliminare alcuni spazi bianchi e forse abbandonare un'assegnazione variabile. Inoltre, per convenzione potresti essere in grado di restituire l'output invece di(write ...)
ceilingcat il

È possibile salvare un byte usando un lambdainvece di defun. Inoltre, leggi i consigli per giocare a golf in lisp
ceilingcat,


2

Lotto , 150 125 121 byte (+ 5 byte? 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%

25 byte salvati grazie a user202729 !

Risparmiato 4 byte grazie a Matheus Avellar !



Oppure, 87 byte
user202729

Non è questo Batch, non Bash? Il TIO per bash non funziona per questo.
Justin Mariner,

Si si lo è; mi dispiace per questo
Ephellon Dantzler,

È possibile inline che ifper essere a 121 byte: if [%t%] neq [] set r=%t%%r%&goto L. Tuttavia, penso che devi includere 1 byte per il /Qflag passato in cmdmodo che funzioni implicitamente@echo off
Matheus Avellar

2

> <>, 41 39 byte

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

Come funziona:

:&

Supponiamo che l'input sia stato inserito nello stack ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Duplicalo e memorizzane una copia nel registro.

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

Converte questo in singole cifre, lasciandole in pila.

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

Il valore massimo sarà sempre zero a causa del processo di conversione da numero a cifra; rilascialo dallo stack. Ora, mentre la lunghezza è> 1, moltiplica il primo elemento per dieci e aggiungilo all'elemento sottostante. Ciò comporta il numero invertito.

      &*n;

Moltiplicare il numero originale per il contrario, stampare la risposta e fermarsi.



2

Ohm v2 , 2 byte

œΠ

Provalo online!

Spiegazione:

œΠ   Main wire, arguments: n

œ    Pushes [n, n.reverse]
 Π   Multiplies that array together
     Implicit output

2
resta al telefono per 4 mesi : P
K3v1n,

Devi essere messo in attesa a lungo perché non ci siano spiegazioni
MilkyWay90

@ MilkyWay90 Siamo stati tutti bloccati in attesa per un anno e mezzo prima, giusto?
Nick Clifford,

@NickClifford Non tutti noi abbiamo
MilkyWay90




1

Casio-Basic (fx-CP400), 44 byte

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

Non esiste un built-in per invertire un numero intero, ma ce n'è uno per invertire una stringa.

ExpToStr n,atrasforma n in una stringa e la memorizza a, quindi StrInv a,asovrascrive acon la versione invertita di se stessa. L'ultima riga si trasforma ain un numero e stampan*a .

43 byte per il codice, +1 da inserire nnella casella dei parametri.


1

Japt, 2 byte

Accetta input come stringa, genera un numero intero.

*w

Provalo


Wow, ho pensato che avrebbe dovuto essere almeno 4 byte ... Suppongo che siano solo 3 anche se si prendono input come numero intero*sw
ETHproductions

@ETHproductions: sì, è quello che avevo originariamente.
Shaggy,

1

MATLAB / Octave , 33 31 byte

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

Provalo online!

Funzione anonima Octave / MATLAB. Questo è un approccio piuttosto ingenuo: converte l'intero in una stringa, inverte la stringa, converte il risultato in un intero e lo moltiplica per l'originale.


  • Salvare 2 byte utilizzando flipinvece di fliplr.



1

PHP, 23 + 1 byte

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

Salva su file ed eseguilo come pipe con -nF.



1

MATL , 5 byte

VPUG*

Provalo online!

Spiegazione: Vconverte in stringa, Pcapovolge, Utorna a numerico, Gcopia di nuovo l'input originale e *li moltiplica insieme.


1

Incantesimi runici , 11 10 byte

i:0qr͍n*@

Provalo online!

Prende l'input, lo duplica, coercita una copia in una stringa, la inverte, la riconduce a un valore numerico, moltiplica e genera il risultato.

0qesegue la coercizione su una stringa concatenando uno zero sull'estremità. Non esiste un ToString()operatore esplicito , quindi questo è il metodo più breve in questo caso specifico in cui lo 0 scambiato all'inizio non modifica il valore numerico risultante. Grazie solo a ASCII per questo -1 byte.



@ Solo ASCII Abbastanza giusto. Finisco per giocherellare con la maggior parte di questi al lavoro e non rivedo sempre quando vado a pubblicarli a casa.
Draco18s non si fida più di SE
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.