З урахуванням int вводу n, вивести n * зворотним (n)


9

Враховуючи ціле число n, роздрукуйтеn * reversed(n)

reversed(n)- це число, яке ви отримуєте, коли ви отримуєте reverseцифри 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

Найкоротший код виграє!

Таблиця лідерів

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
Що таке реверс 100?
tsh

001, але в будь-якому випадку, його штраф, якщо у вас попереду додаткові нулі
K Split X

4
Чому зворотний голос? Тому що цей виклик занадто банальний (порівняйте з деякими іншими викликами, це не так!) Або тому, що він неправильно відформатований / незрозумілий?
користувач202729

2
@ user202729 Я виступав за те, що я не бачив чи очікував багато різноманітності чи глибини відповідей. Це питання нудне, я його спробував. Частина причини нудною полягає в тому, що її банальність, що, на мою думку, є абсолютно справедливим приводом, щоб зняти питання самостійно.
Ad Hoc Hunter Hunter

Відповіді:


10

05AB1E , 2 байти

R*

Спробуйте в Інтернеті!

У 05AB1E цілі числа та рядки розглядаються як еквівалентні типи, тому reversal ( R) перетворюється на рядок та reversses, тоді як множення ( *) розглядає зворотній зв'язок та введення як цілі числа.


4
Â*діє також: D.
Чарівна урвиця урна

4

JavaScript (SpiderMonkey) , 45 35 33 28 байт

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

Спробуйте в Інтернеті!

  • Збережено 2 байти завдяки dennis
  • Збережено 8 байт завдяки kamoroso94
  • Збережено 2 байти завдяки ATaco
  • Збережено 5 байт завдяки Shaggy

Ласкаво просимо до PPCG! Вам не доведеться рахувати f=; анонімні функції дозволені за замовчуванням.
Денніс

Перейдіть з (n+"").split("")для [...(n+"")]заощадити кілька байт. Унарний плюс вам не потрібен, і круглі дужки навколо перевернутого рядка є сторонніми. Загалом, це заощадить 10 байт.
kamoroso94

Ви можете замінити .join("")з , .join``щоб зберегти 2 байти.
Атако

Збережіть 5 байт, взявши введення як рядок: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy

4

Желе , 3 байти

×ṚḌ

Я новачок у Jelly, тому, будь ласка, повідомте мені, чи є спосіб зробити це в 1 або 2 байти!

Спробуйте в Інтернеті!

Пояснення

×ṚḌ    (Input: 12)

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

Насправді, це ṚḌ×була б краща версія. Звичайно, це все одно спрацювало, завдяки тому, як працюють бази.
Ерік Аутгольфер

@EriktheOutgolfer Я спочатку писав це першим, але перемістив ×для фантазії;)
JungHwan Min

4

Рубі, 25 24 байти

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

Спробуйте в Інтернеті! .

Integer#digits повертає список обернених цифр, тому подальше обернення не потрібно.

Дякуємо @ benj2240 за те, що ти граєш у байт!



@ benj2240 дякую! :)
Yytsi

Маршрут eval насправді не працює, оскільки це призведе до відмови програми на 900 із помилкою Invalid octal digit (SyntaxError)замість повернення очікуваного 8100 ...
Value Ink


3

АРБЛ , 12 байт

Приймає вхід як int.

a*reverse(a)

Спробуйте в Інтернеті!


Ось чому я сказав цілий вхід;), чи все ще працює int?
K Спліт X

@KSplitX О, я цього не помічав. Я думаю, що це обмеження трохи непотрібне, але це залежить від вас.
Атако

@KSplitX Виправлено.
Атако

Потрібно використовувати n * reverse(n)так, щоб воно відповідало слову специфікації питання для слова (З огляду на ціле число n, роздрукувати n * reversed(n))
Okx

3

Python 3, 35 28 байт

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

Спробуйте в Інтернеті!

Збережено 7 байт, виправивши помилку, на яку вказав Денніс.


Ні, ясна річ, ви перетворюєте на рядок, [::-1]реверсуєте її, тоді ми eval xD
K Спліт X

Це не працює для введення 80 , як 08і невірний (восьмеричний) літерал.
Денніс

3
Збережено 7 байтів,
виправивши

3

Haskell , 27 23 байт

4 байти збереглися завдяки Лінні та Лайконі

(*)=<<read.reverse.show

Спробуйте в Інтернеті!


1
23 байти без імпорту: спробуйте в Інтернеті!
Лайконі

З Control.Monadтакож 23 байта: ap(*)$read.reverse.show.
Лайконі

1
Не потрібно Control.Monad. (*)=<<read.reverse.showпрацює чудово.
Лінн

@Lynn Дякую! Я відчуваю, що я мав це бачити.
Ad Hoc Hunter Hunter


3

C # .NET, 55 байт

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

Пояснення:

Спробуйте тут.

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

Пакет, 87 байт

@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

Потрібно взяти сюди арифметичний маршрут, оскільки обертання рядків не вдається для деяких чисел, таких як 80.


2

J, 7 байт

*|.&.":

Спробуйте в Інтернеті!

Не міг придумати коротший шлях, хоча я відчуваю, що це досить елегантно.

Пояснення

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


2

ЛИСП, 91 64 байт

(defun R (N) (defvar M (запис у рядок N)) (parse-integer (зворотний M))) (write (* x (R x)))

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

Де x N - це ціле число, з яким ви хочете працювати.

Я досить новачок у програмуванні, але я виявив, що спроба цих проблем із Code Golf є гарною практикою. Чи щось мені не вистачає, що могло б допомогти у цьому?

EDIT: Завдяки деяким порадам від стельової кішки мені вдалося відголити кілька байтів. Стара програма збереглася закреслено для довідки.


Ласкаво просимо до Code Golf! Ви можете усунути деякий пробіл і, можливо, викопати змінне призначення. Також за умовою ви зможете просто повернути результат замість(write ...)
roofcat

Ви можете зберегти байт, використовуючи lambdaзамість defun. Також читайте поради щодо гри в гольф у
Ліспі

2

bash, 52 48 байт

for((i=n=$1;r=r*10+i%10*n,i/=10;));{ :;};echo $r

Ви можете замінити do...doneфігурними дужками, щоб зберегти кілька байт: Спробуйте в Інтернеті! . Це з порад для Баша .
Джастін Марінер

дякую, я радий дізнатися це, я ніколи не бачив цього синтаксису, оновлюючи свою посаду
Nahuel Fouilleul

Хіба це не снаряд?
Стен Струм

2

Пакетна , 150 125 121 байт (+ 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%

Збережено 25 байт завдяки користувачу202729 !

Збережено 4 байти завдяки Матею Авеллару !




Це не Пакет, не Баш? TIO для bash для цього не працює.
Джастін Марінер

Так, так, це; вибачте з цього приводу
Ефеллон Данцлер

Ви можете вбудовувати , що ifбути на 121 байт: if [%t%] neq [] set r=%t%%r%&goto L. Однак я думаю, що ви повинні включити 1 байт для /Qпереданого прапора, щоб cmdвін @echo off
працював

2

> <>, 41 39 байт

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

Як це працює:

:&

Припустимо, введення було висунуто до стека ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Дублюйте його і зберігайте копію в реєстрі.

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

Перетворює це на окремі цифри, залишаючи їх у стеці.

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

Найвище значення завжди буде нульовим через процес перетворення числа в цифру; скиньте його зі стопки. Тепер, поки довжина дорівнює> 1, помножте перший елемент на десять і додайте його до предмета під ним. Це призводить до зміни числа.

      &*n;

Помножте оригінальне число на зворотній бік, надрукуйте відповідь та зупиніться.



2

Ом v2 , 2 байти

œΠ

Спробуйте в Інтернеті!

Пояснення:

œΠ   Main wire, arguments: n

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

2
залишається на телефоні 4 місяці : P
K3v1n

Потрібно довго затримуватися, щоб не було пояснень
MilkyWay90

@ MilkyWay90 Ми всі були затримані за рік-півтора раніше, правда?
Нік Кліффорд

@NickClifford Не у всіх нас
MilkyWay90,




1

Casio-Basic (fx-CP400), 44 байти

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

Немає вбудованого для обертання цілого числа, але є одне для перетворення рядка.

ExpToStr n,aперетворює n у рядок і зберігає його a, а потім StrInv a,aперезаписує aіз зворотною версією себе. Останній рядок перетворюється aна число і друкує n*a.

43 байти для коду, +1 для введення nу поле параметрів.


1

Japt, 2 байти

Приймає введення як рядок, виводить ціле число.

*w

Спробуй це


Нічого собі, я думав, що це повинно бути принаймні 4 байти ... Я вважаю, що це лише 3, навіть якщо ви берете вклад як ціле число*sw
ETHproductions

@ETHproductions: так, це було у мене спочатку.
Кудлатий

1

MATLAB / Octave , 33 31 байт

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

Спробуйте в Інтернеті!

Анонімна функція Octave / MATLAB. Це досить наївний підхід - перетворює ціле число в рядок, перевертає рядок, перетворює результат назад на ціле число і помножує його на оригінал.


  • Збережіть 2 байти, використовуючи flipзамість fliplr.



1

PHP, 23 + 1 байт

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

Збережіть у файл та запустіть як pipe -nF.




1

Рунічні чари , 11 10 байт

i:0qr͍n*@

Спробуйте в Інтернеті!

Бере введення, дублює його, примушує одну копію до рядка, повертає її назад, примушує повернути її до числового значення, примножує та видає результат.

0qвиконує примус до рядка шляхом об'єднання нуля в кінець. Явного ToString()оператора немає , тому це найкоротший метод у цьому конкретному випадку, коли 0, поміняний на початок, не змінює отримане числове значення. Завдяки лише ASCII за цей -1 байт.



@ ASCII-лише справедливий. У кінцевому підсумку я переймаюся з більшістю з них на роботі і не завжди переглядаю їх, коли йду їх розміщувати вдома.
Draco18s більше не довіряє SE
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.