Bilangan bulat keluaran dalam urutan negatif, tambahkan bilangan bulat maksimum setiap kali

44

Tugas utama

Tugas Anda adalah mencetak bilangan bulat dalam urutan menurun, mulai dari 1, dan meningkat saat Anda terus menekan 1 lagi, hingga input yang diberikan tercapai, kemudian, cetak sisanya hingga Anda menekan 1 lagi. Contoh dengan input 6:

1
21
321
4321
54321
654321
Without newlines (valid output):
121321432154321654321
Catatan: ini adalah A004736 di OEIS. Juga, contoh pertama (dengan baris baru) adalah output yang tidak valid, sebagaimana ditentukan dalam aturan.

Memasukkan

Kode Anda dapat mengambil segala jenis input (grafis, STDIN) dalam bentuk bilangan bulat atau angka.

Keluaran

Kode Anda harus menampilkan urutan yang dijelaskan di atas, hingga nomor input tercapai, lalu selesai untuk output hingga mencapai 1 lagi. Keluaran bisa berupa apa saja, oleh karena itu angka, string, bilangan bulat, atau keluaran grafis. Diperlukan untuk mencetak nomor tunggal (tidak ada baris baru jika itu adalah string). Output Anda dapat di-dan outroduced dengan karakter sebanyak yang Anda butuhkan (misalnya []).

Karena ada beberapa kesalahpahaman, inilah pola regex Anda dapat mencoba output Anda.

^(\D*(\d)+\D*)$

Aturan

  • Keluaran harus berupa angka penuh, tidak terpecah oleh apa pun, bahkan bukan baris baru.
  • Algoritme seharusnya tidak memeriksa instance N pertama yang muncul dengan cara apa pun (misalnya 21in 121321), melainkan untuk instance N pertama sebagai angka aktual.
  • Satu baris baru yang dibiarkan diizinkan.
  • Penanganan untuk input negatif sepenuhnya adalah pilihan Anda, angka negatif bukan merupakan kasus yang harus Anda uji.

Uji kasus

Input: 6
Output: 121321432154321654321

Input: 1 Output: 1

Input: 26 Output: 121321432154321654321765432187654321987654321109876543211110987654321121110987654321131211109876543211413121110987654321151413121110987654321161514131211109876543211716151413121110987654321181716151413121110987654321191817161514131211109876543212019181716151413121110987654321212019181716151413121110987654321222120191817161514131211109876543212322212019181716151413121110987654321242322212019181716151413121110987654321252423222120191817161514131211109876543212625242322212019181716151413121110987654321

Input: 0 Output: 0, Empty, or Error

Input: 21 Output: 121321432154321654321765432187654321987654321109876543211110987654321121110987654321131211109876543211413121110987654321151413121110987654321161514131211109876543211716151413121110987654321181716151413121110987654321191817161514131211109876543212019181716151413121110987654321212019181716151413121110987654321

Terima kasih @ Emigna, saya menggunakan algoritmanya untuk menghitung kasus uji ini.

Pemenang

Pemenang telah dipilih! Itu adalah jawaban ErikGolfer dengan 5 byte yang mengesankan ! Selamat!

lebih kaya
sumber
The output must be a full number ...Apakah maksud Anda seluruh urutan, atau hanya substring yang berbeda (1, 2-1, 3-1 ...)? Contoh pertama Anda tampaknya tidak cocok dengan pernyataan ini.
steenbergh
1
Jika output harus berupa angka tunggal, bagaimana bisa "array"?
smls
Apakah array ini dapat diterima sebagai output? [1, 21, 321, 4321, 54321, 654321] Bagaimana dengan yang ini? [1,2,1,3,2,1,4,3,2,1,5,4,3,2,1,6,5,4,3,2,1] Atau apakah Anda hanya berbicara tentang array dengan elemen tunggal, seperti [121321432154321654321]?
smls
1
Saya bingung tentang format output. Bisakah Anda memberi contoh apa yang bisa diterima? Array angka? String dengan angka yang dipisahkan oleh spasi?
Luis Mendo
1
Regex Anda mengizinkan output dari mickey321211mouse. Sungguh \Dbagian - bagian tidak memiliki alasan untuk berada di sana
edc65

Jawaban:

13

Jelly , 5 byte

RRUVV

Cobalah online!

Formula bukan milikku.

Saya menduga ada terlalu banyak hal yang terjadi di sini ...

[JAWABAN DITERIMA] Saya telah memberikan 5 perwakilan kepada Dennis, tetapi ini bukan Pertukaran Reputasi. Dennis menunjukkan kepadaku VVperilakunya. Yang mengejutkan saya, ini lebih pendek dari 05AB1E.

Erik the Outgolfer
sumber
Selamat, kode ini memiliki jumlah kode paling sedikit!
devRicher
19

05AB1E , 6 byte

L€LíJJ

Cobalah online!

Penjelasan

Contoh input 4

L       # range [1 ... input]
        # STACK: [1,2,3,4]
 €L     # map: range
        # STACK: [[1],[1,2],[1,2,3],[1,2,3,4]]
   í    # reverse each
        # STACK: [[1],[2,1],[3,2,1],[4,3,2,1]]
    J   # join inner lists
        # STACK: ['1','21','321','4321']
     J  # join list
        # OUTPUT: 1213214321
Emigna
sumber
13

JavaScript (ES6), 37 byte

f=(n,k=1)=>k>n?n--?f(n):'':f(n,k+1)+k

Demo

Metode alternatif untuk n <10, 34 byte (tidak bersaing)

f=(n,s='1')=>--n?s+f(n,++s[0]+s):s

Dalam JavaScript, string tidak dapat diubah. Oleh karena itu, tidak mungkin untuk mengubah konten karakter Nth string sdengan menetapkan nilai baru s[N].

Namun, ekspresi ++s[N]itu valid dan mengevaluasi seperti yang diharapkan, bahkan jika string tetap tidak berubah. Misalnya:

++"1"[0] // equals 2

Dan dengan ekstensi:

s = "21"
++s[0] + s // equals "321"
Arnauld
sumber
Tampaknya tidak bekerja untuk n> 9
edc65
@ edc65 Kamu benar, tentu saja. Saya tidak tahu mengapa saya pikir tidak masalah untuk berhenti pada jam 9.
Arnauld
12

V, 29 28 27 23 19 17 16 byte

8 byte disimpan berkat @DJMcMayhem

3 byte disimpan berkat @ nmjcman101

"apÀ­ñÄòy$jpkgJ

Karakter tersembunyi:

"apÀ<C-x>ñÄ<C-x>òy$jpkgJ

C-x adalah Ctrl + x.

Cobalah online! mengambil input melalui argumen baris perintah

Hexdump:

0000000: 2261 70c0 adf1 c418 f279 246a 706b 674a  "ap......y$jpkgJ

Penjelasan

"ap            Paste the argument
À<C-x>         Argument minus 1 times (so that we exclude the 0)
ñ ... ò        Loop (for some weird reason the ò closes the ñ)
Ä<C-x>         paste current line above and decrement it

Sekarang sepertinya:

1
2
...
n

melanjutkan ...

ò             recursively do (until a breaking error)
y$             yank this line
  jp           paste it down
    kgJ        go up and join
              implicit ò end

GIF (kedaluwarsa)

(untuk arg 6)

gif

Kritixi Lithos
sumber
Saya mendapatkan beberapa dengan mengubah loop Anda ke a) end secara implisit dan b) bergabung dengan garis saat berjalan (daripada di akhir)òy$jpkgJ
nmjcman101
@ nmjcman101 Terima kasih telah membantu saya menghemat 2 byte!
Kritixi Lithos
Ini golf yang cukup bagus. Saya telah memeras otak saya selama 20 menit, dan saya tidak bisa memikirkan yang lebih pendek. :)
DJMcMayhem
@DJMcMayhem Ini karena saya sudah banyak membantu :)
Kritixi Lithos
Saya melakukannya! Anda bisa turun ke 16 byte. Jika Anda menempelkan arg, dan kemudian menggandakan / mengurangi ke atas, Anda bisa menghapus H. Kemudian jika Anda menggunakan operator penurunan pada Anda À, Anda tidak akan memiliki 0 di bagian atas sehingga Anda dapat menghapus x. Kemudian SEPENUHNYA a òakan menutup ­ñsehingga Anda dapat menghapus yang kedua ­ñ(yang merupakan byte yang Anda simpan). Tautan karena itu tidak masuk akal
nmjcman101
11

C #, 72 69 65 byte

n=>{for(int i=0,j;i<n;)for(j=++i;j>0;)System.Console.Write(j--);}

Jika output hanya dapat dikembalikan dan bukannya Ditulis ke konsol

C #, 71 68 64 byte

n=>{var s="";for(int i=0,j;i<n;)for(j=++i;j>0;)s+=j--;return s;}

Terima kasih kepada @VisualMelon karena telah menghemat banyak byte

Uji di sini (Hebat kompiler online rusak pada nomor di atas 420)

Alfie Goodacre
sumber
Itu sangat cepat.
devRicher
@devRicher Apa yang bisa saya katakan, saya sedang menunggu sesuatu untuk diposting: P
Alfie Goodacre
2
Tidak pernah ada alasan untuk menggunakan loop sementara dalam kode C # golf, for-loop akan selalu berkinerja baik jika tidak lebih baik. Dalam hal ini, Anda dapat memasukkan tugas j=1dalam for-loop, dan menyimpan titik koma. Anda juga dapat mendeklarasikan jbersama i, untuk menyimpan int. Itu i++juga bisa dipindahkan ke j=itugas, menyimpan byte. Anda juga harus dapat mengganti i<=ndengan i<njika Anda membuatnya j=++idan mulai idari 0.
VisualMelon
@VisualMelon mengeditnya, menyimpan 3 byte! Mendeklarasikan int bersama-sama sebenarnya tidak membuat perbedaan pada jumlah byte tetapi itu membuat loop terlihat sedikit lebih bagus
Alfie Goodacre
@AlfieGoodacre jika Anda mendeklarasikannya bersama-sama di dalam for loop, maka Anda akan menghemat 2 byte lebih banyak for(int i=0,j;i<n;);) Juga tidak perlu untuk {}sekitar inner untuk loop.
VisualMelon
8

Bash murni, 34

eval eval printf %s \\{{1..$1}..1}

Dua tingkat ekspansi brace. Dengan input 6, level pertama diperluas ke {1..1} {2..1} {3..1} {4..1} {5..1} {6..1}. Ini kemudian berkembang menjadi 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1, yang dihancurkan bersama menjadi satu string dengan printf %s. evalDiperlukan pada kedua tingkat ekspansi - untuk tingkat pertama sehingga $1parameter diperluas terlebih dahulu, dan untuk tingkat kedua agar diperluas setelah tingkat pertama.

Cobalah online

Trauma Digital
sumber
8

Perl, 21 byte

Penggunaan -Etanpa biaya tambahan.

say map$}=$_.$},1..<>

Pemakaian

perl -E 'say map$}=$_.$},1..<>' <<< 6
121321432154321654321
Dom Hastings
sumber
7

Pyth, 7 byte

jks}R1S

Program yang mengambil input bilangan bulat dan mencetak hasilnya.

Cobalah secara Online!

Bagaimana itu bekerja

jks}R1S   Program. Input: Q
jks}R1SQ  Implicit input fill
    R     Map
      SQ  over [1, 2, 3, 4, ..., Q] with i:
   } 1     Yield [i, i-1, i-2, i-3, ..., 1]
  s       Merge
jk        Join
          Implicitly print
TheBikingViking
sumber
Secara pribadi saya sangat kecewa itu jk_hC.:Slebih lama, tapi kerja bagus!
FryAmTheEggman
7

GeoGebra , 67 byte

1
InputBox[a]
Sum[Join[Sequence[Sequence[Text[j],j,i,1,-1],i,1,a]]]

Setiap baris dimasukkan secara terpisah ke bilah input. Input diambil dari kotak input.

Berikut adalah gif dari eksekusi:

Eksekusi program

Bagaimana itu bekerja

Memasukkan 1secara implisit ditugaskan ake 1, dan InputBoxperintah mengaitkan kotak input dengan a. Kemudian, untuk masing-masing idalam {1, 2, 3, ..., a}, daftar {i, i-1, i-2, ..., 1}dibuat menggunakan Sequenceperintah, dan masing-masing jdalam daftar itu dikonversi ke string menggunakan Text. Akhirnya, Joingabungkan semua daftar, dan Sumgabungkan semua elemen ke satu objek teks, yang ditampilkan.

TheBikingViking
sumber
@devRicher Tampaknya masuk akal. Terima kasih!
TheBikingViking
7

Python 2, 51 byte

r=s=''
n=0
exec'n+=1;s=`n`+s;r+=s;'*input()
print r
Mitch Schwartz
sumber
7

Retina , 26 22 byte

Hitungan byte mengasumsikan penyandian ISO 8859-1.

.+
$*

$`¶
1
$.%'
0?¶

Cobalah online!

Penjelasan

.+
$*

Konversikan input ke unary.


$`¶

Di setiap posisi, masukkan awalan hingga titik itu, serta umpan baris. Ini menciptakan kisaran unary dari 2hingga n+1, satu nilai per baris.

1
$.%'

Ganti masing 1- masing dengan jumlah karakter setelah itu pada baris yang sama. Ini mengubah sesuatu 11111menjadi 43210.

0?¶

Hapus semua umpan garis dan nol di depannya.

Martin Ender
sumber
5

Bahasa GameMaker, 65 byte

b=""for(i=1;i<=argument0;i++){c=i while(j)b+=string(c--)}return b
Timtech
sumber
5

APL, 10 byte

∊⍕¨∘⌽∘⍳¨∘⍳

Misalnya:

      (∊⍕¨∘⌽∘⍳¨∘⍳)6
121321432154321654321

Penjelasan:

  • : dapatkan angka dari 1 hingga N.
  • ⍳¨∘: untuk masing-masing, dapatkan angka dari 1 hingga N.
  • ⌽∘: membalikkan daftar itu
  • ⍕¨∘: dapatkan representasi karakter dari setiap item (sehingga tidak menghasilkan angka dengan spasi di antaranya)
  • : ratakan array yang dihasilkan
marinus
sumber
Jadi itu parsing kode mundur?
devRicher
adalah komposisi fungsi, saya memberikan penjelasan agar fungsi-fungsi tersebut benar-benar dievaluasi
marinus
1
Ini pohon parse, untuk yang penasaran: tryapl.org/…
marinus
5

Python 2, 71 68 byte

Saya yakin solusi rekursif bisa lebih pendek, tapi saya kesulitan memformulasikannya menjadi satu.

n=input()
i=0
o=""
while i<n:
    i+=1;j=i
    while j:o+=`j`;j-=1
print o

Cobalah online

mbomb007
sumber
5

Sebenarnya 8 byte

RR♂RΣRεj

Pertama kali memposting jawaban di Sebenarnya sehingga mungkin bisa bermain golf.

Bagaimana itu bekerja

Program takes implicit input, implicit print at EOF
R           Takes the input and creates a range (1, input)   
                STACK = [1,2,..,n]
 R          Reverse the top stack item (our range)
                STACK = [n,..,2,1]
  ♂R        For each item in our range, create a range (1, rangeitem)
                STACK = [[1,2,..,n], .., [1,2], [1]]
    Σ       Stitch the items of the list together
                STACK = [n,..,1,2,3,1,2,1]
     R      Reverse the top stack item again (our answer)
                STACK = [1,2,1,3,2,1,..n]
      εj    Create an empty string and append each item from the list to it.
            (turns non string items into strings)

Cobalah online!

Pelican teal
sumber
1
Saya tidak yakin bahwa ada adalah solusi yang lebih pendek, tapi aku sudah membuktikan sendiri yang salah sebelumnya. Bagaimanapun, inilah tautan Try It Online untuk jawaban Anda.
Sherlock9
1
Kode R♂R♂RΣεjini memiliki jumlah byte yang sama, tetapi mungkin lebih mudah untuk menulis penjelasan.
Sherlock9
@ Sherlock9 cara Anda sedikit lebih elegan, saya telah menambahkan tautan dan penjelasan yang saya lupa tambahkan kemarin untuk mencoba menjelaskannya sedikit lagi.
Teal pelican
4

Brachylog , 8 byte

yb@[rcw\

Cobalah online!

Penjelasan

yb         The list [1, ..., Input]
  @[       Take a prefix of that list
    rc     Reverse it and concatenate into an integer
      w    Write to STDOUT
       \   Backtrack: try another prefix
Fatalisasi
sumber
4

Perl 6 , 22 byte

{[~] flat [\R,] 1..$_}

Lambda yang mengembalikan string.

( Cobalah online. )

Penjelasan:

  • 1..$_: Rentang bilangan bulat ... (1 2 3 4)
  • [,] 1..$_: Kurangi ("lipat") melalui operator koma ... (1 2 3 4)
  • [\,] 1..$_: Dengan hasil antara ( pengurangan segitiga ) ...((1) (1 2) (1 2 3) (1 2 3 4))
  • [\R,] 1..$_: Terapkan pembalikan meta-operator ke koma ...((1) (2 1) (3 2 1) (4 3 2 1))
  • [~] flat ...: Hapus daftar sarang, dan lipat operator string concat ... 1213214321
seseorang
sumber
4

Haskell, 35 byte

f x=[1..x]>>= \y->[y,y-1..1]>>=show

Contoh penggunaan: f 6-> "121321432154321654321".

Untuk semua angka xdalam 1 ... xdaftar x,x-1, ... ,1, ubah angka menjadi string dan gabungkan menjadi string tunggal. Sekali lagi, gabungkan string-string itu menjadi satu string.

nimi
sumber
4

C89, 54 byte

i,j;f(n){for(i=1;j<=n;j=i++)while(j)printf("%d",j--);}

56 -2 = 54 terima kasih kepada ErikGolfer!

kucing
sumber
Saya pikir Anda bisa melakukan (j=i++)alih - alih (j=i)dan menghapus yang terakhir i++(belum diuji).
Erik the Outgolfer
Berikut ini adalah versi rekursif yang lebih pendek: i,j;f(n){j=++i;while(j)printf("%d",j--);i-n?f(n):0;}(52 byte)
Steadybox
@Steadybox Anda dapat menambahkan itu sebagai jawaban Anda sendiri jika mau, tapi terima kasih!
kucing
@cat Ok, terima kasih, baru saja melakukannya. Tidak yakin apakah saya harus melakukannya karena saya hanya mengedit solusi Anda.
Steadybox
4

Python 3, 87 92 83 74 byte

lambda n:"".join(["".join([str(i)for i in range(1,k)][::-1])for k in range(1,n+2)])

Jawaban singkat menggunakan rekursi:

f=lambda n:f(n-1)+"".join([str(i)for i in range(1,n+1)][::-1])if n>0else""

Mungkin bukan yang terpendek tetapi hanya dibuat dengan pemahaman daftar Python!

(Diedit untuk menambahkan fungsi cetak dan menghapus \ n)

(Diedit untuk menghapus fungsi cetak, dan ubah n + 1, k + 1 menjadi n, k + 2)

Sygmei
sumber
Bekerja dengan k, n + 2 tetapi tidak dengan k + 2, n, terima kasih atas idenya :)
Sygmei
Kode yang Anda nilai harus menjadi yang pertama. Juga, Anda harus menggunakan Python 2 dan kemudian menggunakan `i`bukannya str(i). Dan Anda bisa menggunakan "".join(...)alih-alih "".join([...]), dan range(1,k,-1)untuk menghapus [...][::-1].
mbomb007
Juga n>0bisa n. Dan maksud saya range(n,0,-1). Dan gunakan n and f(n-1)+...)or"".
mbomb007
1
62 byte . Sebenarnya, ini mungkin terlalu dekat dengan jawaban ini .
mbomb007
Ya ini semakin dekat, saya melihat bahwa setelah melakukan versi kedua saya :(
Sygmei
3

Pyth, 8 byte

jks_M._S

Penjelasan

jks_M._SQ   Implicit input
       SQ   Get the range [1, 2, ..., N]
     ._     Get each prefix
   _M       Reverse each prefix
jks         Join everything as a string
Mnemonik
sumber
3

Mathematica, 36 byte

ToString/@(""<>Range[Range@#,1,-1])&

Melempar banyak peringatan yang bisa diabaikan dengan aman.

Penjelasan

Menggunakan input 5sebagai contoh:

Range@#

Membuat kisaran {1, 2, 3, 4, 5}.

Range[...,1,-1]

Rangedapat didaftar sehingga kami dapat memberikan daftar untuk setiap argumennya dan secara otomatis akan membalik argumen tersebut. Jadi ini memberi kita banyak daftar terbalik:

{{1}, {2, 1}, {3, 2, 1}, {4, 3, 2, 1}, {5, 4, 3, 2, 1}}

Lanjut:

(""<>...)

Ini bergabung dengan daftar bersarang dengan string kosong. Karena daftar bersarang tidak benar-benar mengandung string apa pun, itu tidak dapat benar-benar bergabung dengan nilai-nilai (yang merupakan tempat peringatan itu dihasilkan), tetapi ""<>memiliki efek samping meratakan daftar. Jadi ini memberi kita

1 <> 2 <> 1 <> 3 <> 2 <> 1 <> 4 <> 3 <> 2 <> 1 <> 5 <> 4 <> 3 <> 2 <> 1

Sekarang hadir fitur cantik Mathematica yang Maptidak peduli dengan struktur yang dipetakannya. Anda biasanya menerapkannya ke daftar, tetapi berfungsi dengan kepala apa pun. f /@ h[a, b, c]hanya memberi Anda h[f[a], f[b], f[c]]. Dalam kasus kami, head adalah StringJoindan nilainya adalah integer.

ToString/@...

Jadi ini hanya mengubah bilangan bulat menjadi string. Pada saat itu StringJoin[...]tahu apa yang harus dilakukan dengan mereka dan menggabungkan mereka semua menjadi satu string:

"121321432154321"
Martin Ender
sumber
1
Itu benar-benar tidak menyenangkan. :)
Greg Martin
3

GolfScript , 14 byte

~,{),{)}%-1%}%

Cobalah online!

Metode yang biasa tentu saja, tetapi ini adalah GolfScript.

Penjelasan untuk potongan kode VAST ini :

~,{),{)}%-1%}% # Code
               # Initial stack.      ["n"]
~              # Eval ToS.           [n]
 ,             # ToS' lowered range. [[0..n)]
  {),{)}%-1%}  # Block. 1 argument.  [a]
   )           # Increment.          [a+1]
    ,          # Range.              [[0..a)]
     {)}       # Block. 1 argument.  [b]
      )        # Increment.          [b+1]
        %      # Map.                [[1..a]]
         -1    # Integer. -1         [[1..a] -1]
           %   # Each nth element.   [[a..1]]
             % # Map.                [[[1],[2,1],...,[n..1]]]
               # Implicit output.    121...n..1

Perhatikan bahwa output adalah sebagai nomor tunggal. Tertinggal \n.

Erik the Outgolfer
sumber
3

R, 38 33 44 byte

if((n=scan())>0)for(i in 1:n)cat(i:1,sep="")

Mengambil input ke STDIN, dan loop dari 1 ke n, membuat urutan i ke 1 untuk setiap langkah dan mencetaknya.

Sunting: diganti seq(i,1)dengan i:1menyimpan 5 byte dan menunjukkan mengapa saya tidak boleh bermain golf selama rapat.

JAD
sumber
Ini menghasilkan 101jika input 0. if((n=scan())>0)for(i in 1:n)cat(i:1,sep="")lakukan triknya.
Frédéric
Sial, diasumsikan input non-nol :(
JAD
if(n<-scan())harus cukup.
Giuseppe
3

MATL , 14 11 byte

:"@:P]v!VXz

Cobalah online!

Penjelasan

:      % Input N implicitly. Push range [1 2 ...N]
"      % For each k in [1 2 ...N]
  @:   %   Push range [1 2 ... k]
  P    %   Reverse
]      % End
v!     % Concatenate all arrays horizontally
V      % Convert to string
Xz     % Remove spaces. Display implicitly
Luis Mendo
sumber
not split up by anything, jangan pikir yang kedua diizinkan.
JAD
2
@JarkoDubbeldam saya akan menghapus yang itu sampai OP mengklarifikasi
Luis Mendo
1
@Jarko OP mengklarifikasi. Solusi saat ini sesuai dengan spec
Luis Mendo
3

brainfuck, 17 byte

>,[>[+.>]+.[<]>-]

Penjelasan

>           keep the first cell at 0
 ,          input of the decimal number into the cell
  [>        start a conditionnal loop and go to the next cell
   [+.>]    while it don't find 0, increment each cells and output the value
    +.      increment the new cell and output
     [<]    go to the first cell
      >-]   decrement the second cell and restart

Cobalah online!

Milihhard
sumber
Selamat datang di PPCG! Sudahkah Anda membaca halaman tur dan pertanyaan meta terpanas? Saya menyarankan Anda untuk, mereka sangat membantu! Juga, bungkus kode Anda dalam pemformatan kode! Sudahkah Anda membaca bantuan pemformatan? Anda juga harus menjelaskan cara kerja kode Anda, jika Anda bisa!
devRicher
@muddyfish Saya baru saja menambahkan penjelasan
Milihhard
Saya telah menggunakan aplikasi seluler. Anda dapat melihat layar hasilnya.
Milihhard
Tidak, tidak apa-apa. Tetapi di tautan, ouput ada di ascii dan tidak dalam desimal, jadi Anda tidak benar-benar melihat hasilnya
Milihhard
@muddyfish Permalink Anda sedikit membingungkan. Ada 0x06 yang tidak terlihat dalam input, diikuti oleh angka desimal 6 .
Dennis
3

Python , 63 57 59 byte

Solusi rekursif yang bekerja di kedua Python 2 dan 3. Ini mungkin bisa golf lebih lanjut. Selamat datang saran bermain golf! Cobalah online!

Sunting: -6 bytes terima kasih kepada Jonathan Allan. +2 byte dengan terima kasih kepada mbomb007 karena menunjukkan masalah dengan jawaban saya.

f=lambda n:n and f(n-1)+"".join(map(str,range(n,0,-1)))or""

Tidak melakukanolf

def f(n):
    s = ""
    for i in range(n+1):
        m = map(str, range(n, 0, -1))
        s += "".join(m)
    return s
Sherlock9
sumber
2
Gunakan a mapuntuk menyimpan 6 byte:lambda n:n and f(n-1)+"".join(map(str,range(n,0,-1)))or""
Jonathan Allan
2

PHP, 35 34 33 byte

Disimpan satu byte karena saya salah hitung, terima kasih Titus! Dan satu lagi!

while($i++<$argv[1])echo$s=$i.$s;

Jalankan dari baris perintah dengan -r.

Jawaban yang cukup sederhana, loop dari 1 hingga input kami n, menempelkan nomor ke awal string dan mencetaknya.

Xanderhall
sumber
Saya menghitung 34. Satu byte lebih pendek dengan post-increment.
Titus
33 byte:while($i++<$argv[1])echo$s=$i.$s;
aross
1

CJam, 13 byte

ri,:){,:)W%}%

penerjemah

Erik the Outgolfer
sumber
Anda dapat menyimpan 2 byte:ri{),:)W%}%
Luis Mendo
@LuisMendo Rapi, terima kasih untuk itu!
Erik the Outgolfer