Cho đầu vào int n, in ra n * đảo ngược (n)


9

Cho một số nguyên n, in ran * reversed(n)

reversed(n)là số bạn nhận được khi bạn reversecác chữ số của 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

Mã ngắn nhất sẽ thắng!

Bảng xếp hạng

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
Mặt trái của là 100gì?
tsh

001, nhưng trong mọi trường hợp, sẽ tốt hơn nếu bạn có thêm số 0 ở phía trước
K Split X

4
Tại sao downvote? Bởi vì thử thách này quá tầm thường (so với một số thử thách khác, không phải vậy!) Hay vì nó có định dạng xấu / không rõ ràng?
dùng202729

2
@ user202729 Tôi bị từ chối vì tôi không thấy hoặc dự đoán nhiều câu trả lời hay chiều sâu. Câu hỏi này thật nhàm chán, tôi đã thử nó. Một phần lý do khiến nó nhàm chán là vì nó tầm thường, mà tôi nghĩ là một nguyên nhân hoàn toàn chính đáng để tự mình hạ thấp một câu hỏi.
Ad Hoc Garf Hunter

Câu trả lời:



4

JavaScript (SpiderMonkey) , 45 35 33 28 byte

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

Hãy thử trực tuyến!


Chào mừng đến với PPCG! Bạn không cần phải đếm f=; chức năng ẩn danh được cho phép theo mặc định.
Dennis

Chuyển ra (n+"").split("")cho [...(n+"")]đến tiết kiệm một vài byte. Bạn không cần dấu cộng đơn và dấu ngoặc đơn xung quanh chuỗi đảo ngược là không liên quan. Tất cả trong tất cả, điều đó giúp bạn tiết kiệm 10 byte.
kamoroso94

Bạn có thể thay thế .join("")bằng .join``để lưu 2 byte.
ATaco

Lưu 5 byte bằng cách lấy đầu vào dưới dạng chuỗi: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/iêu
Shaggy

4

Thạch , 3 byte

×ṚḌ

Tôi mới sử dụng Jelly, vì vậy vui lòng cho tôi biết nếu có cách nào để thực hiện việc này trong 1 hoặc 2 byte!

Hãy thử trực tuyến!

Giải trình

×ṚḌ    (Input: 12)

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

Thực tế ṚḌ×sẽ là một phiên bản tốt hơn. Tất nhiên điều này vẫn sẽ hoạt động, do cách thức hoạt động của các căn cứ.
Erik the Outgolfer

@EriktheOutgolfer Ban đầu tôi đã viết nó trước tiên, nhưng đã chuyển sang sự huyền ảo ×;)
JungHwan Min

4

Ruby, 25 24 byte

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

Dùng thử trực tuyến! .

Integer#digits trả về một danh sách các chữ số đảo ngược, vì vậy việc đảo ngược thêm là không cần thiết.

Cảm ơn @ benj2240 vì đã chơi golf một byte!



@ benj2240 cảm ơn! :)
Yytsi

Tuyến eval không thực sự hoạt động, vì nó sẽ khiến chương trình bị lỗi vào ngày 900 với lỗi Invalid octal digit (SyntaxError)thay vì trả lại 8100 dự kiến ​​...
Ink Ink


3

CẠNH , 12 byte

Đưa đầu vào như một int.

a*reverse(a)

Hãy thử trực tuyến!


Đó là lý do tại sao tôi nói đầu vào số nguyên;), int vẫn hoạt động?
K Split X

@KSplitX Ồ, tôi không nhận thấy điều đó. Tôi nghĩ rằng hạn chế một chút không cần thiết, nhưng nó tùy thuộc vào bạn.
ATaco

@KSplitX Đã sửa.
ATaco

Nên sử dụng n * reverse(n)để nó phù hợp với từ đặc tả của câu hỏi cho từ (Cho một số nguyên n, in ra n * reversed(n))
Okx

3

Python 3, 35 28 byte

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

Hãy thử trực tuyến!

Đã lưu 7 byte bằng cách sửa một lỗi được chỉ ra bởi Dennis.


Không rõ ràng, bạn chuyển đổi thành chuỗi, [::-1]đảo ngược nó, sau đó chúng tôi tiến hành xD
K Split X

Điều này không hoạt động cho đầu vào 80 , như 08là một chữ (bát phân) không hợp lệ.
Dennis

3
Đã lưu 7 byte bằng cách sửa một lỗi Không phải bạn chỉ thích nó khi điều đó xảy ra ...
ETHproductions



3

C # .NET, 55 byte

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

Giải trình:

Hãy thử nó ở đây.

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

Mẻ, 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

Cần đi theo con đường số học ở đây vì việc đảo ngược chuỗi thất bại đối với một số số như 80.


2

J, 7 byte

*|.&.":

Hãy thử trực tuyến!

Không thể nghĩ ra một cách ngắn hơn, mặc dù tôi cảm thấy như thế này là khá thanh lịch.

Giải trình

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


2

LISP, 91 64 byte

(defun R (N) (defvar M (ghi vào chuỗi N)) (parse-số nguyên (đảo ngược M))) (write (* x (R x)))

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

Trong đó x N là số nguyên của bạn mà bạn muốn làm việc với, tất nhiên.

Tôi khá mới đối với lập trình, nhưng tôi thấy rằng việc thử các vấn đề về Code Golf này là một cách hay. Có điều gì tôi đang thiếu có thể giúp với điều này?

EDIT: Nhờ một số lời khuyên từ Barecat, tôi đã có thể cạo sạch một vài byte. Chương trình cũ được bảo tồn trong cuộc đình công để tham khảo.


Chào mừng bạn đến với Code Golf! Bạn có thể loại bỏ một số khoảng trắng và có thể bỏ qua một phép gán biến. Ngoài ra, theo quy ước, bạn có thể chỉ cần trả lại đầu ra thay vì(write ...)
trần

Bạn có thể lưu một byte bằng cách sử dụng lambdathay vì defun. Ngoài ra, hãy đọc các mẹo để chơi gôn trong lisp
trần mèo


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%

Đã lưu 25 byte nhờ người dùng202729 !

Đã lưu 4 byte nhờ Matheus Avellar !



Hoặc, 87 byte
user202729

Đây không phải là Batch, không phải Bash? TIO cho bash không hoạt động cho việc này.
Justin Mariner

Vâng vâng nó là; xin lỗi về điều đó
Ephellon Dantzler

Bạn có thể nội tuyến ifở mức 121 byte : if [%t%] neq [] set r=%t%%r%&goto L. Tuy nhiên, tôi nghĩ bạn phải bao gồm 1 byte cho /Qcờ được chuyển đến cmdđể nó chạy với ẩn@echo off
Matheus Avellar

2

> <>, 41 39 byte

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

Làm thế nào nó hoạt động:

:&

Giả sử đầu vào đã được đẩy lên ngăn xếp ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Sao chép nó và lưu một bản sao trong sổ đăng ký.

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

Chuyển đổi nó thành các chữ số riêng lẻ của nó, để chúng trên ngăn xếp.

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

Giá trị hàng đầu sẽ luôn là 0 do quá trình chuyển đổi từ số sang chữ số; thả nó từ ngăn xếp Bây giờ, trong khi độ dài là> 1, nhân số mục đầu tiên với mười và thêm nó vào mục bên dưới nó. Điều này dẫn đến số lượng đảo ngược.

      &*n;

Nhân số gốc với đảo ngược, in câu trả lời và dừng lại.



2

Ohm v2 , 2 byte

œΠ

Hãy thử trực tuyến!

Giải trình:

œΠ   Main wire, arguments: n

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

2
ở lại điện thoại trong 4 tháng : P
K3v1n

Bạn phải bị trì hoãn trong một thời gian dài để không có lời giải thích
MilkyWay90

@ MilkyWay90 Tất cả chúng ta đã bị mắc kẹt trong một năm rưỡi trước, phải không?
Nick Clifford

@NickClifford Không phải ai trong chúng ta cũng có
MilkyWay90

1

Toán học, 19 byte

# IntegerReverse@#&

Có một đầu vào số nguyên.




1

Casio-Basic (fx-CP400), 44 byte

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

Không có tích hợp để đảo ngược một số nguyên, nhưng có một số để đảo ngược một chuỗi.

ExpToStr n,abiến n thành một chuỗi và lưu trữ nó vào a, sau đó StrInv a,aghi đè lên aphiên bản đảo ngược của chính nó. Dòng cuối cùng biến athành một số và in n*a.

43 byte cho mã, +1 để nhập nvào hộp tham số.


1

Japt, 2 byte

Lấy đầu vào dưới dạng một chuỗi, xuất ra một số nguyên.

*w

Thử nó


Ồ, tôi nghĩ rằng nó sẽ phải có ít nhất 4 byte ... Tôi cho rằng nó chỉ có 3 byte ngay cả khi lấy đầu vào là một số nguyên*sw
ETHproductions

@ETHproductions: yeah, đó là những gì tôi đã có ban đầu.
Xù xì

1

MATLAB / Octave , 33 31 byte

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

Hãy thử trực tuyến!

Hàm ẩn danh Octave / MATLAB. Đây là một cách tiếp cận khá ngây thơ - chuyển đổi số nguyên thành một chuỗi, lật chuỗi, chuyển đổi kết quả trở lại thành một số nguyên và nhân nó với số nguyên.


  • Lưu 2 byte bằng cách sử dụng flipthay vì fliplr.



1

PHP, 23 + 1 byte

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

Lưu vào tập tin và chạy như đường ống với -nF.



1

MATL , 5 byte

VPUG*

Hãy thử trực tuyến!

Giải thích: Vchuyển đổi thành chuỗi, Plật, Uchuyển đổi lại thành số, Gsao chép lại đầu vào ban đầu và *nhân chúng lại với nhau.


1

Bùa mê , 11 10 byte

i:0qr͍n*@

Hãy thử trực tuyến!

Đưa đầu vào, sao chép nó, ép buộc một bản sao vào một chuỗi, đảo ngược nó, ép nó trở lại một giá trị số, nhân và đưa ra kết quả.

0qthực hiện việc ép buộc thành một chuỗi bằng cách ghép một số 0 vào cuối. Không có ToString()toán tử rõ ràng , vì vậy đây là phương pháp ngắn nhất trong trường hợp cụ thể này khi 0 được hoán đổi từ đầu không làm thay đổi giá trị số kết quả. Cảm ơn ASCII - chỉ cho byte này.



@ ASCII-Chỉ đủ công bằng. Tôi cuối cùng loay hoay với hầu hết những điều này tại nơi làm việc và không luôn luôn xem lại khi tôi đi đăng chúng ở nhà.
Draco18 không còn tin tưởng SE
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.