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


9

Dado um número inteiro n, impriman * reversed(n)

reversed(n)é o número que você obtém quando reversedigita os 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

O menor código vence!

Entre os melhores

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 é o inverso 100?
TSH

001, mas, em qualquer caso, tudo bem se você tiver zeros adicionais na frente
K Split X

4
Por que voto negativo? Porque esse desafio é muito trivial (compare com alguns outros desafios, não é!) Ou porque é mal formatado / pouco claro?
user202729

2
@ user202729 Fiz uma votação baixa porque não vi ou previ muita variedade ou profundidade de respostas. Esta pergunta é chata, eu tentei. Parte do motivo é chato, porque é trivial, o que eu acho que é uma causa perfeitamente justa para rebater uma questão por si própria.
Ad Hoc Garf Hunter

Respostas:


10

05AB1E , 2 bytes

R*

Experimente online!

Em 05AB1E, números inteiros e seqüências de caracteres são tratados como tipos equivalentes, então reversal ( R) se converte em sequência e inverte, enquanto a multiplicação ( *) trata o reverso e a entrada como números inteiros.


4
Â*também é válido: D.
Magic Octopus Urn

4

JavaScript (SpiderMonkey) , 45 35 33 28 bytes

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

Experimente online!

  • Economizou 2 bytes graças a dennis
  • Guardado 8 bytes graças a kamoroso94
  • Economizou 2 bytes graças ao ATaco
  • Guardado 5 bytes graças a Shaggy

Bem-vindo ao PPCG! Você não precisa contar f=; funções anônimas são permitidas por padrão.
Dennis

Troque (n+"").split("")para [...(n+"")]salvar alguns bytes. Você não precisa do plus unário, e os parênteses ao redor da string invertida são estranhos. Em suma, você economiza 10 bytes.
kamoroso94

Você pode substituir .join("")por .join``para salvar 2 bytes.
ATaco 10/10

Guardar 5 bytes por tomar entrada como uma string: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/...
Shaggy

4

Gelatina , 3 bytes

×ṚḌ

Eu sou novo no Jelly, por isso, deixe-me saber se existe uma maneira de fazer isso em 1 ou 2 bytes!

Experimente online!

Explicação

×ṚḌ    (Input: 12)

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

Na verdade, ṚḌ×seria uma versão melhor. Claro que isso ainda funcionaria, devido a como as bases funcionam.
Erik the Outgolfer

@EriktheOutgolfer eu escrevi originalmente que o primeiro, mas mudou o ×para fanciness;)
JungHwan Min



3

ARBLE , 12 bytes

Recebe entrada como int.

a*reverse(a)

Experimente online!


É por isso que eu disse entrada inteira;), int ainda funciona?
K Dividir X

@KSplitX Ah, eu não percebi isso. Eu acho essa restrição um pouco desnecessária, mas depende de você.
ATaco 10/10

@KSplitX Fixed.
ATaco 10/10

Deve usar n * reverse(n)para que corresponda à especificação da pergunta, palavra por palavra (dado um número inteiro n, imprima n * reversed(n)) #
0412 Okx

3

Python 3, 35 e 28 bytes

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

Experimente online!

Economizou 7 bytes corrigindo um bug apontado por Dennis.


Nah seu claro, você converter a corda, os [::-1]reveses, então nós eval xD
K Dividir X

Isso não funciona para a entrada 80 , pois 08é um literal inválido (octal).
Dennis

3
Salvo 7 bytes através da fixação de um bug que você não apenas adoro quando isso acontece ...
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;}

Explicação:

Experimente aqui.

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

É necessário seguir a rota aritmética aqui, pois a inversão de string falha em alguns números, como 80.


2

J, 7 bytes

*|.&.":

Experimente online!

Não conseguia pensar em um caminho mais curto, embora eu sinta que isso é bastante elegante.

Explicação

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


2

LISP, 91 64 bytes

(defun R (N) (defvar M (gravação na cadeia N)) (analisar número inteiro (M reverso))) (escrever (* x (R x)))

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

Onde x N é o número inteiro com o qual você deseja trabalhar, é claro.

Sou bastante iniciante em programação, mas descobri que tentar esses problemas com o Code Golf tem sido uma boa prática. Está faltando algo que poderia ajudar com isso?

EDIT: Graças a algumas dicas do tetocat, eu era capaz de cortar alguns bytes. Programa antigo preservado em tachado para referência.


Bem-vindo ao Code Golf! Você pode eliminar alguns espaços em branco e talvez abandonar uma atribuição de variável. Além disso, por convenção você pode ser capaz de simplesmente retornar a saída em vez de(write ...)
ceilingcat

Você pode salvar um byte usando um em lambdavez de defun. Além disso, leia dicas para jogar golfe em lisp
ceilingcat 10/10


2

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

Economizou 25 bytes graças a user202729 !

Guardado 4 bytes graças a Matheus Avellar !




Não é este lote, não é bash? O TIO para bash não funciona para isso.
Justin Mariner

Sim Sim é isso; sinto muito por isso
Ephellon Dantzler

Você pode embutida que ifestar em 121 bytes: if [%t%] neq [] set r=%t%%r%&goto L. No entanto, eu acho que você tem que incluem 1 byte para o /Qsinalizador passado para cmdque ele funcione com implícita@echo off
Matheus Avellar

2

> <>, 41 39 bytes

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

Como funciona:

:&

Suponha que a entrada tenha sido enviada por push para a pilha ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Duplique e armazene uma cópia no registro.

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

Converte isso em dígitos individuais, deixando-os na pilha.

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

O valor superior sempre será zero devido ao processo de conversão de número em dígito; solte-o da pilha. Agora, enquanto o comprimento for> 1, multiplique o primeiro item por dez e adicione-o ao item abaixo dele. Isso resulta no número revertido.

      &*n;

Multiplique o número original pelo contrário, imprima a resposta e pare.







1

Casio-Basic (fx-CP400), 44 bytes

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

Não existe um built-in para reverter um número inteiro, mas existe um para reverter um string.

ExpToStr n,atransforma n em uma sequência de caracteres e a armazena e, em aseguida, StrInv a,asobrescreve aa versão invertida de si mesma. A última linha se transforma aem um número e é impressa n*a.

43 bytes para o código, +1 para inserir nna caixa de parâmetros.


1

Japonês, 2 bytes

Pega a entrada como uma string e gera um número inteiro.

*w

Tente


Uau, eu pensei que teria que ser de 4 bytes, pelo menos ... Acho que é apenas 3 mesmo se pegar a entrada como um inteiro*sw
ETHproductions

@ETHproductions: sim, era o que eu tinha originalmente.
Shaggy

1

MATLAB / Oitava , 33 31 bytes

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

Experimente online!

Função anônima Octave / MATLAB. Essa é uma abordagem bastante ingênua - converte o número inteiro em uma sequência, inverte a sequência, converte o resultado novamente em um número inteiro e multiplica-o pelo original.


  • Salve 2 bytes usando em flipvez de fliplr.



1

PHP, 23 + 1 bytes

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

Salve em arquivo e execute como pipe com -nF.



1

MATL , 5 bytes

VPUG*

Experimente online!

Explicação: Vconverte em sequência, Pvira, Uconverte novamente em numérico, Gcopia a entrada original novamente e as *multiplica.


1

Encantos Rúnicos , 11 10 bytes

i:0qr͍n*@

Experimente online!

Pega entrada, duplica, coage uma cópia para uma sequência, inverte, coage de volta a um valor numérico, multiplica e gera o resultado.

0qexecuta a coerção em uma string concatenando um zero no final. Não há ToString()operador explícito , portanto, este é o método mais curto nesse caso específico, em que o 0 trocado para o início não altera o valor numérico resultante. Graças ao ASCII-only para este -1 byte.



@ Apenas ASCII justo o suficiente. Acabo brincando com a maioria delas no trabalho e nem sempre as revisito quando vou publicá-las em casa.
Draco18s não confia mais em SE
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.