Dengan bilangan bulat positif n
, lakukan hal berikut (dan hasilkan setiap tahap):
- mulai dengan daftar yang berisi
n
salinann
. - lakukan waktu berikut
n
: - pada
i
langkah ke-5, secara bertahap kurangii
entri ke-daftar sampai tercapaii
Jadi, misalnya, jika diberi n
adalah 4
, maka Anda mulai dengan [4,4,4,4]
, dan kemudian pada langkah pertama yang harus [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. Pada langkah kedua, Anda harus [1,3,4,4]
, [1,2,4,4]
. Pada langkah ketiga yang Anda miliki [1,2,3,4]
. Tidak ada yang dilakukan pada langkah keempat.
Jadi output Anda [[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]
.
Setiap format input / output yang masuk akal diizinkan.
Celah standar berlaku. Ini adalah kode-golf : jawaban dengan byte-count terkecil menang.
code-golf
array-manipulation
Biarawati Bocor
sumber
sumber
i
th selalu 1-diindeks.Jawaban:
Jelly , 9 byte
Cobalah online!
Bagaimana?
* Mungkin lebih mudah untuk melihat apa yang terjadi dengan produk Cartesian yang digunakan di atas dengan input berbeda:
sumber
R ,
838274 byteCobalah online!
Alih-alih double for-loop,
while
loop cukup di sini: kami menemukan indeks pertama di mana daftar lebih besar dari indeks, dan penurunan di sana.K
memiliki diTRUE
mana sajaN[i]>i
,which(K)
mengembalikan indeks yang benar, dan kami mengambil yang pertama[1]
.sumber
Jelly , 12 byte
Cobalah online!
sumber
JavaScript (ES6), 75 byte
Cobalah online!
sumber
APL + WIN, 54 byte
Meminta input layar integer
Menghasilkan matriks dengan setiap baris yang mewakili hasil dari setiap langkah misalnya untuk 4:
sumber
Jelly , 11 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Python 3 , 91 byte
Cobalah online!
sumber
Java (OpenJDK 8) , 135 byte
Cobalah online!
Penjelasan:
Kredit:
-8 Bytes berkat Jonathan Frech !
-16 bytes terima kasih kepada Kevin Cruijssen !
-1 byte terima kasih kepada Okx !
sumber
import java.util.*;
merupakan bagian dari byte-count aku takut. Dan @ JonathanFrech's code dapat di-golf dengan 4 byte lebih banyak dengan meletakkan,i=0
afterr[]
, dan berubah<-~a
menjadi<=a
. ( Cobalah secara online. 144 bytes ) (dan saya berubah~-i
untuki-1
untuk membuatnya lebih mudah dibaca ..)import java.util.*;
menggunakanjava.util.Arrays x=null;
danx.fill
danx.toString
. (Perhatikan bahwa solusi Anda saat ini adalah 155 byte dengan yang diperlukanimport java.util.*;
.)for(;r[i-1]>i;
daripadafor(;r[i-1]!=i;
.++i<=a
kei++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Cobalah online 135 byteHaskell,
69 67 6563 byteDefinisi rekursif:
Terima kasih kepada Laikoni untuk 2 byte!
sumber
map
adalah dua byte lebih pendek dengan pemahaman daftar: Cobalah secara online!PHP, 153 Bytes
Cobalah online!
Kode
Akan mencoba untuk menurunkan byte, atau menyelesaikan fungsi rekursif
Penjelasan
sumber
Python 2 ,
8076 byteCobalah online!
Agak boros memiliki dua
print
pernyataan tetapi saya tidak bisa memikirkan cara yang lebih baik saat ini.sumber
Python 2 , 70 byte
-2 byte terima kasih kepada @LeakyNun
-2 byte terima kasih kepada @JonathanFrech
Cobalah online!
sumber
(I-1)
->~-I
i=I
dan mengurangi.Java (JDK 10) , 112 byte
Cobalah online!
sumber
J ,
1715 byteCobalah online!
Penjelasan
sumber
Retina , 49 byte
Cobalah online! Penjelasan:
Konversikan input ke unary.
Buat daftar n salinan di
i,n
manai
indeks salinan.Jangan mencetak apa pun (saat loop selesai).
Loop sampai pola tidak berubah.
Hapus sementara
i
dan konversikann
menjadi desimal dan keluaran.Ambil entri daftar pertama yang nilainya melebihi indeksnya dan kurangi.
sumber
Python 3 ,
706765 byteCobalah online!
Versi tidak disatukan:
sumber
C (dentang) ,
131141 byteCobalah online!
Ini akan bekerja untuk semua
n
hingga 99. TIO memotong output. Ini dapat mendukung lebih besar secara sewenang-wenangn
dengan mengubah ukuran arraym
jika memori memungkinkan.Mengikuti terbatas pada n = 1..9 tetapi secara signifikan lebih pendek
C (dentang) ,
8992 byteCobalah online!
Diperbarui: Dimodifikasi untuk menghindari ketergantungan pada inisialisasi statis
sumber
static/global initialization because multiple test cases
tidak diizinkan, karena fungsi harus dapat dipanggil lebih dari sekali.m[j]--,p()
untukp(m[j]--)
dan menyimpan byte.Clojure, 132 byte
Saya berharap ini lebih pendek ...
Lebih sedikit status tetapi lebih lama pada 141 byte:
sumber
Python 3, 101 byte
Saya mungkin bisa bermain golf lebih banyak dengan hasil cetak, tetapi saya jauh dari komputer saya dan tidak sepenuhnya yakin dengan aturan python 2 tentang pengaturan variabel untuk dicetak. Saya akan memperbarui nanti ketika saya sampai di komputer atau jika seseorang mengklarifikasi dalam komentar.
sumber
K (ngn / k) ,
3432 byteCobalah online!
sumber