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

K Split X
źródło
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.

Pan Xcoder
źródło
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
Ephellon Dantzler
źródło
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
JungHwan Min
źródło
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
4

Rubin, 25 24 bajtów

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

Wypróbuj online! .

Integer#digits zwraca listę cyfr odwróconych, więc dalsze cofanie nie jest konieczne.

Dzięki @ benj2240 za grę w bajt!

Yytsi
źródło
@ benj2240 dzięki! :)
Yytsi
Trasa ewaluacyjna w rzeczywistości nie działa, ponieważ spowoduje błąd programu z błędem 900 Invalid octal digit (SyntaxError)zamiast zwracania oczekiwanego 8100 ...
Wartość tuszu
3

ARBLE , 12 bajtów

Pobiera dane wejściowe jako int.

a*reverse(a)

Wypróbuj online!

ATaco
źródło
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.

LyricLy
źródło
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

Haskell , 27 23 bajtów

4 bajty zapisane dzięki Lynn i Laikoni

(*)=<<read.reverse.show

Wypróbuj online!

Ad Hoc Garf Hunter
źródło
1
23 bajty bez importu: wypróbuj online!
Laikoni,
Ze Control.Monadjest to również 23 bajtów: ap(*)$read.reverse.show.
Laikoni,
1
Nie ma potrzeby Control.Monad. (*)=<<read.reverse.showdziała w porządku.
Lynn,
@Lynn Thanks! Czuję, że powinienem to zobaczyć.
Ad Hoc Garf Hunter,
3

Perl 6 , 10 bajtów

{$_*.flip}

Spróbuj

Rozszerzony

{       # bare block lambda with implicit parameter $_
  $_
  *
  .flip # implicit method call on $_
}
Brad Gilbert b2gills
źródło
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
Kevin Cruijssen
źródło
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.

Neil
źródło
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
kapusta
źródło
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.

Esteta
źródło
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

bash, 52 48 bajtów

for((i=n=$1;r=r*10+i%10*n,i/=10;));{ :;};echo $r
Nahuel Fouilleul
źródło
Możesz zastąpić do...donenawiasami klamrowymi, aby zaoszczędzić trochę bajtów: Wypróbuj online! . To pochodzi ze wskazówek dotyczących postu Bash .
Justin Mariner,
dziękuję, cieszę się, że się tego nauczyłem, nigdy nie widziałem tej składni, aktualizuję swój post
Nahuel Fouilleul 10.10.17
Czy to nie szok?
Stan Strum
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 !

Ephellon Dantzler
źródło
97 bajtów
użytkownik202729,
Lub 87 bajtów
user202729,
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ę.

Bolce Bussiere
źródło
33 bajty
Jo King
2

Ohm v2 , 2 bajty

œΠ

Wypróbuj online!

Wyjaśnienie:

œΠ   Main wire, arguments: n

œ    Pushes [n, n.reverse]
 Π   Multiplies that array together
     Implicit output
Nick Clifford
źródło
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

Mathematica, 19 bajtów

# IntegerReverse@#&

Pobiera liczbę całkowitą.

JungHwan Min
źródło
1

cQuents 0 , 8 bajtów

#|1:A\rA

Wypróbuj online!

Wyjaśnienie

#|1:      Output first term in sequence
    A\rA  Each term in the sequence equals:
           A * \reverse(A)
Stephen
źródło
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.

NumberManiac
źródło
1

Japt, 2 bajty

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

*w

Spróbuj

Kudłaty
źródło
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.
Tom Carpenter
źródło
1

PHP, 23 + 1 bajtów

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

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

Tytus
źródło
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.

B. Mehta
źródło
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.

Draco18s nie ufa już SE
źródło
10
Tylko ASCII
@ 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