İnt girişi n verildiğinde, çıktı n * ters çevrilmiş (n)


9

Bir tam sayı verildiğinde n, çıktı alınn * reversed(n)

reversed(n)reverserakamları ile elde ettiğiniz sayıdır 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

En kısa kod kazanır!

Liderler Sıralaması

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
Bunun tersi nedir 100?
tsh

001, ancak her durumda, önünde başka sıfır varsa sorun yok
K Split X

4
Neden oy kullanmıyorsunuz? Bu zorluk çok önemsiz olduğu için (diğer bazı zorluklarla kıyaslandığında, değil!) Veya kötü biçimlendirilmiş / belirsiz olduğu için mi?
user202729

2
@ user202729 Yanıtlara çok fazla çeşitlilik veya derinlik görmediğim veya beklemediğim için indirdim. Bu soru sıkıcı, denedim. Sıkıcı olmasının bir nedeni, bence önemsiz, bence bir soruyu kendi başına düşürmek için mükemmel bir neden.
Ad Hoc Garf Hunter

Yanıtlar:



4

JavaScript (SpiderMonkey) , 45 35 33 28 bayt

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

Çevrimiçi deneyin!


PPCG'ye Hoşgeldiniz! Saymak zorunda değilsiniz f=; anonim işlevlere varsayılan olarak izin verilir.
Dennis

Birkaç bayt kaydetmek (n+"").split("")için geçiş yapın [...(n+"")]. Tekli artıya ihtiyacınız yoktur ve ters dize etrafındaki parantezler yabancıdır. Sonuçta, bu size 10 bayt kazandırır.
kamoroso94

2 bayt kaydetmek için .join("")ile değiştirebilirsiniz .join``.
ATaco

Girişi dize olarak alarak 5 bayt kaydedin: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy

4

Jöle , 3 bayt

×ṚḌ

Jelly'de yeniyim, bu yüzden bunu 1 veya 2 baytta yapmanın bir yolu olup olmadığını bana bildirin!

Çevrimiçi deneyin!

açıklama

×ṚḌ    (Input: 12)

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

Aslında ṚḌ×daha iyi bir versiyon olurdu. Tabii ki, üslerin nasıl çalıştığı nedeniyle bu hala işe yarayacaktı.
Outgolfer Erik

@EriktheOutgolfer Ben ilk başta bunu yazdım, ama ×fantezi için taşındı ;)
JungHwan Min

4

Yakut, 25 24 bayt

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

Çevrimiçi Deneyin! .

Integer#digits ters çevrilmiş rakamların bir listesini döndürür, bu nedenle daha fazla tersine çevirme gerekmez.

@ Benj2240'a bir bayt golf için teşekkürler !


Eval

@ benj2240 teşekkürler! :)
Yytsi

Değerlendirme rotası aslında çalışmaz, çünkü programın Invalid octal digit (SyntaxError)beklenen 8100'ü döndürmek yerine 900'de başarısız olmasına neden olur ...
Value Ink


3

ARBLE , 12 bayt

Bir int olarak girdi alır.

a*reverse(a)

Çevrimiçi deneyin!


Bu yüzden tamsayı girişi dedim;), int hala çalışıyor mu?
K Split X

@KSplitX Oh, bunu fark etmedim. Bu kısıtlamanın biraz gereksiz olduğunu düşünürdüm, ama size kalmış.
ATaco

@KSplitX Düzeltildi.
ATaco

Kullanmalı mıyım n * reverse(n)o kelime için Sorunun şartname sözcüğü ile eşleşen böylece (bir tamsayı Verilen n, çıktısını n * reversed(n))
Okx

3

Python 3, 35 28 bayt

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

Çevrimiçi deneyin!

Dennis'in işaret ettiği bir hatayı düzelterek 7 bayt kurtardı.


Hayır, net, dize dönüştürür, [::-1]tersine çevirir, sonra xD
K Split X

Bu giriş için işe yaramaz, 80 olarak 08hazır geçersiz (sekizli) 'dir.
Dennis

3
Bir hatayı düzelterek 7 bayt kaydedildi Bu gerçekleştiğinde sevmiyorsunuz ...
ETHproductions



3

C # .NET, 55 bayt

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

Açıklama:

Burada deneyin.

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

Toplu, 87 bayt

@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 gibi bazı sayılar için dize tersine çevrilemediğinden, burada aritmetik yolu almanız gerekir.


2

J, 7 bayt

*|.&.":

Çevrimiçi deneyin!

Bu oldukça zarif gibi hissediyorum, ancak daha kısa bir yol düşünemedim.

açıklama

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


2

LISP, 91 64 bayt

(defun R (N) (defvar M (dizeye yazma N)) (ayrıştırma tamsayısı (ters M))) (yazma (* x (R x)))

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

Burada x N, çalışmak istediğiniz tamsayıdır.

Programlamaya çok yeniyim, ancak bu Code Golf sorunlarını denemenin güzel bir uygulama olduğunu gördüm. Bu konuda yardımcı olabilecek eksik bir şey var mı?

EDIT: ceilingcat bazı ipuçları sayesinde, birkaç bayt tıraş olabilir. Eski program referans için üstü çizili olarak korunmuştur.


Code Golf'e hoş geldiniz! Bazı boşlukları ortadan kaldırabilir ve değişken bir atamayı bırakabilirsiniz. Ayrıca, konvansiyon ile sadece çıktıyı geri verebilirsiniz(write ...)
ceilingcat

Sen kullanarak bir bayt kaydedebilirsiniz lambdayerine defun. Ayrıca,
lisp'de


2

Toplu , 150 125 121 bayt (+ 5 bayt? 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%

User202729 sayesinde 25 bayt tasarruf edildi !

Matheus Avellar sayesinde 4 bayt tasarruf etti !




Bu Parti değil, Bash değil mi? Bash için TIO bunun için çalışmaz.
Justin Mariner

Evet evet o; bunun için üzgünüm
Ephellon Dantzler

Bunu satır içine alabilirsiniz if121 bayt olmak: if [%t%] neq [] set r=%t%%r%&goto L. Ancak, /Qbayrağa geçirilen bayrak için 1 bayt eklemeniz gerektiğini düşünüyorum , cmdbu yüzden örtük şekilde çalışır@echo off
Matheus Avellar

2

> <>, 41 39 Bayt

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

Nasıl çalışır:

:&

Girdinin yığına aktarıldığını varsayın ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Çoğaltın ve bir kopyasını kayıt defterinde saklayın.

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

Bunu tek tek rakamlara dönüştürür ve yığın üzerinde bırakır.

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

Sayıdan basamağa dönüştürme işlemi nedeniyle en yüksek değer her zaman sıfır olacaktır; yığından bırakın. Şimdi, uzunluk> 1 iken, ilk öğeyi on ile çarpın ve altındaki öğeye ekleyin. Bu sayı tersine çevrilir.

      &*n;

Orijinal numarayı tersten çarpın, yanıtı yazdırın ve durdurun.







1

Casio-Basic (fx-CP400), 44 bayt

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

Bir tamsayıyı tersine çevirmek için yerleşik bir şey yoktur, ancak bir dizeyi tersine çevirmek için bir tane vardır.

ExpToStr n,an'yi bir dizgiye dönüştürür ve saklar a, sonra tersine çevrilmiş sürümünün StrInv a,aüzerine yazar a. Son satır abir sayıya dönüşür ve yazdırılırn*a .

Kod için 43 bayt n, parametreler kutusuna +1 girmek için.


1

Japt, 2 bayt

Girdiyi dize olarak alır, bir tamsayı çıkarır.

*w

Dene


Vay canına, en azından 4 bayt olması gerektiğini düşündüm ... Bir tamsayı olarak girdi *sw
alsa

@ETHproductions: evet, ilk başta bunu yaptım.
Shaggy

1

MATLAB / Oktav , 33 31 bayt

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

Çevrimiçi deneyin!

Oktav / MATLAB anonim işlevi. Bu oldukça naif bir yaklaşımdır - tamsayıyı bir dizeye dönüştürür, dizeyi çevirir, sonucu tekrar bir tamsayıya dönüştürür ve orijinal ile çarpar.


  • Kullanılarak 2 bayt kaydet flipyerine fliplr.



1

PHP, 23 + 1 bayt

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

Dosyaya kaydedin ve ile boru olarak çalıştırın -nF.



1

MATL , 5 bayt

VPUG*

Çevrimiçi deneyin!

Explanation: Vdizgiye dönüştürür, Pters çevirir, Utekrar sayısalya dönüştürür G, orijinal girdiyi tekrar kopyalar ve *birlikte çoğaltır.


1

Runik Büyüler , 11 10 bayt

i:0qr͍n*@

Çevrimiçi deneyin!

Girdiyi alır, çoğaltır, bir kopyayı dizeye zorlar, tersine çevirir, sayısal değere zorlar, sonucu çarpar ve çıktı verir.

0qsonuna bir sıfır ekleyerek bir dizeye zorlama yapar. Açık bir ToString()işleç yoktur , bu nedenle, başa takas edilen 0'ın sonuçta ortaya çıkan sayısal değeri değiştirmediği bu özel durumda en kısa yöntemdir. ASCII'ye sadece bu -1 bayt için teşekkürler.



@ Sadece ASCII Yeterince adil. Bunların çoğunu işyerinde oynuyorum ve onları evde postalamaya gittiğimde her zaman tekrar ziyaret etmiyorum.
Draco18s artık SE
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.