Diberikan input int n, cetak n * terbalik (n)

9

Diberikan bilangan bulat n, cetakn * reversed(n)

reversed(n)adalah angka yang Anda dapatkan ketika Anda reversedigit 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

Kode terpendek menang!

Papan peringkat

K Split X
sumber
3
Apa kebalikannya 100?
tsh
001, tetapi bagaimanapun, tidak masalah jika Anda memiliki angka nol tambahan di depan
K Split X
4
Mengapa downvote? Karena tantangan ini terlalu sepele (dibandingkan dengan beberapa tantangan lain, bukan!) Atau karena formatnya buruk / tidak jelas?
user202729
2
@ user202729 Saya downvoted karena saya tidak melihat atau mengantisipasi banyak variasi atau kedalaman jawaban. Pertanyaan ini membosankan, saya mencobanya. Salah satu alasan mengapa hal itu membosankan adalah karena sepele, yang menurut saya merupakan alasan sempurna untuk mengecilkan pertanyaan sendiri.
Ad Hoc Garf Hunter

Jawaban:

10

05AB1E , 2 byte

R*

Cobalah online!

Dalam 05AB1E, bilangan bulat dan string diperlakukan sebagai tipe yang setara, jadi pembalikan ( R) dikonversi menjadi string dan pembalikan, sementara multiplikasi ( *) memperlakukan pembalikan dan input sebagai bilangan bulat.

Tuan Xcoder
sumber
4
Â*juga berlaku: D.
Magic Octopus Mm
4

JavaScript (SpiderMonkey) , 45 35 33 28 byte

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

Cobalah online!

Ephellon Dantzler
sumber
Selamat datang di PPCG! Anda tidak harus menghitung f=; fungsi anonim diizinkan secara default.
Dennis
Beralih (n+"").split("")ke [...(n+"")]untuk menyimpan beberapa byte. Anda tidak perlu plus unary, dan tanda kurung di sekitar string yang dibalik tidak cocok. Semua dalam semua, itu menghemat 10 byte.
kamoroso94
Anda dapat mengganti .join("")dengan .join``untuk menyimpan 2 byte.
ATaco
Simpan 5 byte dengan mengambil input sebagai string: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy
4

Jelly , 3 byte

×ṚḌ

Saya baru mengenal Jelly, jadi beri tahu saya jika ada cara untuk melakukan ini dalam 1 atau 2 byte!

Cobalah online!

Penjelasan

×ṚḌ    (Input: 12)

 Ṛ     Reversed decimal digits (Stack: [2, 1])
×      Multiply by input       (Stack: [24, 12])
  Ḍ    Convert to decimal      (Stack: 252)
       Implicit print
JungHwan Min
sumber
Sebenarnya ṚḌ×akan menjadi versi yang lebih baik. Tentu saja ini masih akan berhasil, karena cara kerja pangkalan.
Erik the Outgolfer
@EriktheOutgolfer Saya awalnya menulis itu dulu, tetapi menggerakkannya ×untuk kesenangan;)
JungHwan Min
4

Ruby, 25 24 byte

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

Cobalah secara Online! .

Integer#digits mengembalikan daftar digit terbalik, jadi pembalikan lebih lanjut tidak diperlukan.

Terima kasih kepada @ benj2240 untuk bermain golf satu byte!

Yytsi
sumber
@ benj2240 terima kasih! :)
Yytsi
Rute eval tidak benar-benar berfungsi, karena akan menyebabkan program gagal pada 900 dengan kesalahan Invalid octal digit (SyntaxError)alih-alih mengembalikan yang diharapkan 8100 ...
Value Ink
3

ARBLE , 12 byte

Mengambil input sebagai int.

a*reverse(a)

Cobalah online!

ATaco
sumber
Itulah mengapa saya mengatakan input integer;), apakah int masih berfungsi?
K Split X
@KSplitX Oh, saya tidak menyadarinya. Saya pikir pembatasan itu agak tidak perlu, tetapi terserah Anda.
ATaco
@KSplitX Diperbaiki.
ATaco
Harus digunakan n * reverse(n)sehingga cocok dengan spesifikasi kata kata demi kata (Diberikan bilangan bulat n, cetak n * reversed(n))
Okx
3

Python 3, 35 28 byte

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

Cobalah online!

Disimpan 7 byte dengan memperbaiki bug yang ditunjukkan oleh Dennis.

Lirik
sumber
Nah ini jelas, Anda mengonversi ke string, [::-1]membalikkannya, lalu kami eval xD
K Split X
Ini tidak berfungsi untuk input 80 , seperti 08literal yang tidak valid (oktal).
Dennis
3
Disimpan 7 byte dengan memperbaiki bug. Jangan Anda menyukainya saat itu terjadi ...
ETHproduksi
3

Haskell , 27 23 byte

4 byte disimpan berkat Lynn dan Laikoni

(*)=<<read.reverse.show

Cobalah online!

Ad Hoc Garf Hunter
sumber
1
23 byte tanpa impor: Coba online!
Laikoni
Dengan Control.Monaditu juga 23 byte: ap(*)$read.reverse.show.
Laikoni
1
Tidak perlu Control.Monad. (*)=<<read.reverse.showbekerja dengan baik.
Lynn
@ Lynn, terima kasih! Saya merasa saya seharusnya melihat itu.
Ad Hoc Garf Hunter
3

Perl 6 , 10 byte

{$_*.flip}

Cobalah

Diperluas

{       # bare block lambda with implicit parameter $_
  $_
  *
  .flip # implicit method call on $_
}
Brad Gilbert b2gills
sumber
3

C # .NET, 55 byte

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

Penjelasan:

Coba di sini.

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
sumber
2

Batch, 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

Perlu mengambil rute aritmatika di sini karena pembalikan string gagal untuk beberapa angka seperti 80.

Neil
sumber
2

J, 7 byte

*|.&.":

Cobalah online!

Tidak bisa memikirkan cara yang lebih pendek, meskipun saya merasa ini cukup elegan.

Penjelasan

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

C (gcc) , 49 byte

i,a;f(n){for(i=0,a=n;a>0;a/=10)i=i*10+a%10;n*=i;}

Cobalah online!

Biarawati Bocor
sumber
5
Sarankan penggantian a>0hanya dengana
ceilingcat
2

LISP, 91 64 byte

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

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

Di mana x N adalah bilangan bulat yang ingin Anda kerjakan, tentu saja.

Saya cukup baru dalam pemrograman, tetapi saya telah menemukan bahwa mencoba masalah Golf Code ini merupakan latihan yang bagus. Apakah ada sesuatu yang saya lewatkan yang dapat membantu dengan ini?

EDIT: Berkat beberapa tips dari ceilingcat, saya dapat mencukur beberapa byte. Program lama disimpan dalam coretan untuk referensi.

Estetikus
sumber
Selamat datang di Golf Code! Anda dapat menghilangkan spasi putih dan mungkin mengabaikan tugas variabel. Juga, dengan konvensi, Anda mungkin dapat mengembalikan output saja(write ...)
ceilingcat
Anda dapat menyimpan byte menggunakan lambdabukan defun. Baca juga tips bermain golf di
lisp
2

bash, 52 48 byte

for((i=n=$1;r=r*10+i%10*n,i/=10;));{ :;};echo $r
Nahuel Fouilleul
sumber
Anda dapat mengganti do...donedengan kurung kurawal untuk menghemat beberapa byte: Cobalah online! . Ini dari tips untuk posting Bash .
Justin Mariner
terima kasih, saya senang mempelajarinya, saya belum pernah melihat sintaks ini, memperbarui posting saya
Nahuel Fouilleul
Bukankah itu shellshock?
Stan Strum
2

Batch , 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%

Disimpan 25 byte berkat pengguna202729 !

Disimpan 4 byte berkat Matheus Avellar !

Ephellon Dantzler
sumber
97 byte
pengguna202729
Atau, 87 byte
user202729
Bukankah ini Batch, bukan Bash? TIO untuk bash tidak berfungsi untuk ini.
Justin Mariner
Ya, ya itu; maaf soal itu
Ephellon Dantzler
Anda dapat inline yang ifberada di 121 bytes: if [%t%] neq [] set r=%t%%r%&goto L. Namun, saya pikir Anda harus memasukkan 1 byte untuk /Qbendera yang dilewati cmdagar berjalan dengan implisit@echo off
Matheus Avellar
2

> <>, 41 39 Bytes

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

Bagaimana itu bekerja:

:&

Asumsikan input telah didorong ke stack ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Gandakan dan simpan salinan dalam register.

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

Ubah ini menjadi masing-masing digit, meninggalkannya di tumpukan.

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

Nilai teratas akan selalu nol karena proses konversi angka ke digit; jatuhkan dari tumpukan. Sekarang, sementara panjangnya> 1, kalikan item pertama dengan sepuluh dan tambahkan ke item di bawahnya. Ini menghasilkan angka terbalik.

      &*n;

Lipat gandakan nomor aslinya dengan terbalik, cetak jawabannya, dan berhenti.

Bolce Bussiere
sumber
33 byte
Jo King
2

Ohm v2 , 2 byte

œΠ

Cobalah online!

Penjelasan:

œΠ   Main wire, arguments: n

œ    Pushes [n, n.reverse]
 Π   Multiplies that array together
     Implicit output
Nick Clifford
sumber
2
tetap di telepon selama 4 bulan : P
K3v1n
Anda harus ditahan untuk waktu yang lama agar tidak ada penjelasan
MilkyWay90
@ MilkyWay90 Kita semua pernah ditahan selama satu setengah tahun sebelumnya, kan?
Nick Clifford
@NickClifford Tidak semua dari kita memiliki
MilkyWay90
1

Mathematica, 19 byte

# IntegerReverse@#&

Mengambil input integer.

JungHwan Min
sumber
1

cQuents 0 , 8 bytes

#|1:A\rA

Cobalah online!

Penjelasan

#|1:      Output first term in sequence
    A\rA  Each term in the sequence equals:
           A * \reverse(A)
Stephen
sumber
1

Casio-Basic (fx-CP400), 44 byte

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

Tidak ada bawaan untuk membalik bilangan bulat, tetapi ada satu untuk membalikkan string.

ExpToStr n,amengubah n menjadi string dan menyimpannya a, lalu StrInv a,amenimpa adengan versi yang dibalik itu sendiri. Baris terakhir berubah amenjadi angka, dan dicetak n*a.

43 byte untuk kode, +1 untuk dimasukkan nke dalam kotak parameter.

numbermaniac
sumber
1

Japt, 2 byte

Mengambil input sebagai string, menghasilkan integer.

*w

Cobalah

Shaggy
sumber
Wow, saya pikir itu harus setidaknya 4 byte ... Saya kira itu hanya 3 bahkan jika mengambil input sebagai integer*sw
ETHproduksi
@ ETHproductions: yeah, itulah yang awalnya saya miliki.
Shaggy
1

MATLAB / Oktaf , 33 31 byte

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

Cobalah online!

Oktaf / MATLAB fungsi anonim. Ini adalah pendekatan yang cukup naif - mengonversi bilangan bulat menjadi string, membalikkan string, mengubah hasilnya kembali menjadi bilangan bulat dan mengalikannya dengan yang asli.


  • Simpan 2 byte dengan menggunakan flipbukan fliplr.
Tom Carpenter
sumber
1

PHP, 23 +1 byte

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

Simpan ke file dan jalankan sebagai pipa dengan -nF.

Titus
sumber
1

MATL , 5 byte

VPUG*

Cobalah online!

Penjelasan: Vmengkonversi ke string, Pmembalik, Umengubah kembali ke numerik, Gmenyalin input asli lagi, dan *mengalikannya bersama.

B. Mehta
sumber
1

Pesona Rise , 11 10 byte

i:0qr͍n*@

Cobalah online!

Mengambil input, menduplikat, memaksa satu salinan ke string, membalikkannya, memaksanya kembali ke nilai numerik, mengalikan, dan mengeluarkan hasilnya.

0qmelakukan paksaan ke string dengan menggabungkan nol ke ujung. Tidak ada ToString()operator eksplisit , jadi ini adalah metode terpendek dalam kasus khusus ini di mana 0 bertukar ke awal tidak mengubah nilai numerik yang dihasilkan. Berkat ASCII-only untuk -1 byte ini.

Draco tidak lagi percaya pada SE
sumber
10
ASCII
@ ASCII-only Cukup adil. Saya akhirnya mengutak-atik sebagian besar ini di tempat kerja dan tidak selalu mengunjungi kembali ketika saya mempostingnya di rumah.
Draco18 tidak lagi percaya