Biorąc pod uwagę liczbę całkowitą n, wydrukuj n * odwrócony (n)


9

Podaj liczbę całkowitą n, wydrukujn * reversed(n)

reversed(n)to liczba, którą otrzymujesz, gdy dostaniesz reversecyfry 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

Najkrótszy kod wygrywa!

Tabela liderów

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
Co jest na odwrót 100?
tsh

001, ale w każdym razie dobrze, jeśli masz dodatkowe zera z przodu
K Split X

4
Dlaczego głosować? Ponieważ to wyzwanie jest zbyt trywialne (w porównaniu z innymi wyzwaniami, nie jest!) Lub ponieważ jest źle sformatowane / niejasne?
user202729,

2
@ user202729 Poparłem głosowanie, ponieważ nie widziałem ani nie spodziewałem się dużej różnorodności lub głębi odpowiedzi. To pytanie jest nudne, próbowałem. Jednym z powodów, dla których jest nudny, jest to, że jest trywialny, co moim zdaniem jest całkowicie słuszną przyczyną, aby zadać pytanie samo w sobie.
Ad Hoc Garf Hunter,

Odpowiedzi:


10

05AB1E , 2 bajty

R*

Wypróbuj online!

W 05AB1E liczby całkowite i łańcuchy są traktowane jako równoważne typy, więc reversal ( R) konwertuje na łańcuch i odwraca, podczas gdy multipiplication ( *) traktuje odwrotność i dane wejściowe jako liczby całkowite.


4
Â*jest również ważny: D.
Magic Octopus Urn

4

JavaScript (SpiderMonkey) , 45 35 33 28 bajtów

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

Wypróbuj online!

  • Zaoszczędzono 2 bajty dzięki dennis
  • Zaoszczędzono 8 bajtów dzięki kamoroso94
  • Zaoszczędź 2 bajty dzięki ATaco
  • Zaoszczędź 5 bajtów dzięki Shaggy

Witamy w PPCG! Nie musisz liczyć f=; funkcje anonimowe są domyślnie dozwolone.
Dennis,

Przełączyć się (n+"").split("")do [...(n+"")]zaoszczędzić kilka bajtów. Nie potrzebujesz jednoargumentowego plusa, a nawiasy wokół odwróconego łańcucha są obce. W sumie oszczędza to 10 bajtów.
kamoroso94,

Można wymienić .join("")ze .join``aby zaoszczędzić 2 bajtów.
ATaco,

Zaoszczędź 5 bajtów, przyjmując dane wejściowe jako ciąg: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy,

4

Galaretka , 3 bajty

×ṚḌ

Jestem nowy w Jelly, więc proszę dać mi znać, jeśli istnieje sposób, aby to zrobić w 1 lub 2 bajtach!

Wypróbuj online!

Wyjaśnienie

×ṚḌ    (Input: 12)

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

W rzeczywistości ṚḌ×byłaby lepsza wersja. Oczywiście nadal to działałoby, ze względu na działanie zasad.
Erik the Outgolfer,

@EriktheOutgolfer Pierwotnie napisałem to, ale przeniosłem się ×na szaleństwo;)
JungHwan Min



3

ARBLE , 12 bajtów

Pobiera dane wejściowe jako int.

a*reverse(a)

Wypróbuj online!


Właśnie dlatego powiedziałem całkowitą;), czy int nadal działa?
K Split X

@KSplitX Och, nie zauważyłem tego. Myślę, że to ograniczenie jest trochę niepotrzebne, ale to zależy od ciebie.
ATaco,

@KSplitX Naprawiono.
ATaco,

Powinien być użyty, n * reverse(n)aby pasował do słowa kluczowego w specyfikacji pytania (biorąc pod uwagę liczbę całkowitą n, wydrukuj n * reversed(n))
Okx,

3

Python 3, 35 28 bajtów

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

Wypróbuj online!

Zaoszczędzono 7 bajtów, naprawiając błąd wskazany przez Dennisa.


Nie, to jasne, konwertujesz na strunę, [::-1]odwraca ją, a następnie ewaluujemy xD
K Split X

To nie działa dla wejścia 80 , ponieważ 08jest to niepoprawny (ósemkowy) literał.
Dennis,

3
Zaoszczędzono 7 bajtów, naprawiając błąd Nie lubisz tego, kiedy to się dzieje ...
ETHproductions



3

C # .NET, 55 bajtów

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

Wyjaśnienie:

Wypróbuj tutaj.

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

Partia, 87 bajtów

@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

Musisz wybrać tutaj trasę arytmetyczną, ponieważ odwrócenie ciągu nie powiedzie się w przypadku niektórych liczb, takich jak 80.


2

J, 7 bajtów

*|.&.":

Wypróbuj online!

Nie mogłem wymyślić krótszego sposobu, choć wydaje mi się, że jest to dość eleganckie.

Wyjaśnienie

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


2

LISP, 91 64 bajtów

(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))))))

Oczywiście, gdzie x N jest liczbą całkowitą, z którą chcesz pracować.

Jestem całkiem nowy w programowaniu, ale przekonałem się, że rozwiązywanie problemów z Code Golf było dobrą praktyką. Czy brakuje mi czegoś, co mogłoby w tym pomóc?

EDYCJA: Dzięki kilku wskazówkom z sufitu, udało mi się ogolić kilka bajtów. Stary program zachowany w przekreśleniu w celach informacyjnych.


Witamy w Code Golf! Możesz wyeliminować niektóre białe znaki i być może porzucić zmienne przypisanie. Ponadto, zgodnie z konwencją, możesz być w stanie po prostu zwrócić wynik zamiast(write ...)
ceilingcat 10.10.17

Możesz zapisać bajt za pomocą lambdazamiast defun. Przeczytaj także wskazówki dotyczące gry w golfa w lisp
ceilingcat


2

Partia , 150 125 121 bajtów (+ 5 bajtów? 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%

Zaoszczędzono 25 bajtów dzięki user202729 !

Zaoszczędzono 4 bajty dzięki Matheusowi Avellarowi !




Czy to nie Batch, nie Bash? TIO dla bash nie działa w tym przypadku.
Justin Mariner,

Tak tak to jest; przepraszam za to
Ephellon Dantzler,

Można inline, że ifaby być w 121 bajtów: if [%t%] neq [] set r=%t%%r%&goto L. Myślę jednak, że musisz dołączyć 1 bajt do /Qflagi przekazanej do, cmdwięc działa ona domyślnie@echo off
Matheus Avellar

2

> <>, 41 39 bajtów

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

Jak to działa:

:&

Załóżmy, że dane wejściowe zostały wypchnięte na stos ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Zduplikuj go i zapisz kopię w rejestrze.

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

Konwertuje to na poszczególne cyfry, pozostawiając je na stosie.

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

Najwyższa wartość zawsze będzie równa zeru ze względu na proces konwersji cyfr na cyfry; upuść go ze stosu. Teraz, gdy długość wynosi> 1, pomnóż pierwszy element przez dziesięć i dodaj go do elementu poniżej. Powoduje to odwrócenie liczby.

      &*n;

Pomnóż oryginalny numer przez odwrotną stronę, wydrukuj odpowiedź i zatrzymaj się.



2

Ohm v2 , 2 bajty

œΠ

Wypróbuj online!

Wyjaśnienie:

œΠ   Main wire, arguments: n

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

2
pozostaje przy telefonie przez 4 miesiące : P
K3v1n

Musisz być zawieszony na długi czas, aby nie było wyjaśnienia
MilkyWay90

@ MilkyWay90 Wszyscy byliśmy zawieszeni przez półtora roku wcześniej, prawda?
Nick Clifford,

@NickClifford Nie każdy z nas ma
MilkyWay90




1

Casio-Basic (fx-CP400), 44 bajty

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

Nie ma wbudowanego odwracania liczby całkowitej, ale jest jeden do odwracania łańcucha.

ExpToStr n,azamienia n w ciąg i zapisuje go a, a następnie StrInv a,azastępuje aodwróconą wersją samego siebie. Ostatnia linia zamienia asię w liczbę i drukujen*a .

43 bajty dla kodu, +1 do wprowadzenia nw pole parametrów.


1

Japt, 2 bajty

Pobiera dane wejściowe jako ciąg znaków, wypisuje liczbę całkowitą.

*w

Spróbuj


Wow, myślałem, że będzie to co najmniej 4 bajty ... *sw
Podejrzewam,

@ETHproductions: tak, pierwotnie to miałem.
Shaggy

1

MATLAB / Octave , 33 31 bajtów

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

Wypróbuj online!

Funkcja anonimowa Octave / MATLAB. Jest to dość naiwne podejście - konwertuje liczbę całkowitą na ciąg, odwraca ciąg, przekształca wynik z powrotem na liczbę całkowitą i mnoży go przez oryginał.


  • Zaoszczędź 2 bajty, używając flipzamiast fliplr.



1

PHP, 23 + 1 bajtów

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

Zapisz do pliku i uruchom jako potok za pomocą -nF.



1

MATL , 5 bajtów

VPUG*

Wypróbuj online!

Objaśnienie: Vkonwertuje na ciąg, Podwraca, Ukonwertuje z powrotem na numeryczne, ponownie Gkopiuje oryginalne dane wejściowe i *mnoży je razem.


1

Runiczne Zaklęcia , 11 10 bajtów

i:0qr͍n*@

Wypróbuj online!

Pobiera dane wejściowe, duplikuje je, wymusza jedną kopię na ciąg znaków, odwraca ją, wymusza powrót do wartości liczbowej, mnoży i wyprowadza wynik.

0qwykonuje przymus na łańcuch, konkatenując zero na końcu. Nie ma wyraźnego ToString()operatora, więc jest to najkrótsza metoda w tym konkretnym przypadku, w którym 0 zamienione na początek nie zmienia wynikowej wartości liczbowej. Dzięki ASCII tylko dla tego -1 bajtu.



@ Tylko ASCII Wystarczająco uczciwy. Skończyłem majstrować przy większości z nich w pracy i nie zawsze wracam, kiedy idę je opublikować w domu.
Draco18s nie ufa już SE
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.