Tantangan:
Input: Bilangan bulat positif
Keluaran:
Buat daftar dalam rentang , dan gabungkan bersama menjadi sebuah string (yaitu akan menjadi string ).12345678910111213
Sekarang kita menghasilkan sebuah segitiga menggunakan awalan atau akhiran dari string ini, dalam salah satu dari empat orientasi berikut berdasarkan pada integer input:
- Jika , output dalam bentuk segitiga ◣
- Jika , output dalam bentuk segitiga ◤
- Jika , output dalam bentuk segitiga ◥
- Jika , output dalam bentuk segitiga ◢
Contoh:
Input:
Karena , bentuknya akan ◤. Berikut tiga kemungkinan hasil yang valid:
12345678910111213 11111111111111111 12345678910111213
1234567891011121 2222222222222222 2345678910111213
123456789101112 333333333333333 345678910111213
12345678910111 44444444444444 45678910111213
1234567891011 5555555555555 5678910111213
123456789101 666666666666 678910111213
12345678910 77777777777 78910111213
1234567891 8888888888 8910111213
123456789 999999999 910111213
12345678 11111111 10111213
1234567 0000000 0111213
123456 111111 111213
12345 11111 11213
1234 1111 1213
123 222 213
12 11 13
1 3 3
Aturan tantangan:
- Seperti yang Anda lihat pada tiga output yang valid di atas, hanya bentuk yang benar dan menggunakan semua digit dalam urutan yang benar adalah penting. Selain itu, Anda bebas menggunakan awalan atau sufiks; membalikkan / mencerminkan; pencetakan diagonal; dll. Salah satu dari enam kemungkinan output untuk setiap bentuk diperbolehkan (lihat test case di bawah ini untuk melihat semua output yang valid berdasarkan bentuk). Ini memungkinkan bahasa dengan builtin rotasi untuk menggunakannya, tetapi mereka yang tidak dapat juga menggunakan pendekatan alternatif menggunakan awalan dalam ukuran yang benar dari atas ke bawah, atau menggunakan awalan untuk dua bentuk tetapi sufiks untuk dua bentuk lainnya . Memilih opsi keluaran yang paling tepat untuk bahasa Anda adalah bagian dari proses bermain golf. :)
- Input dijamin bilangan bulat positif. Untuk kita cukup output .
1
- Sejumlah baris / spasi terdepan / tertinggal diperbolehkan, asalkan mencetak segitiga yang benar (tanpa pembatas vertikal maupun horizontal!) Di suatu tempat di layar.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda dengan aturan I / O standar , sehingga Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
Kasus uji:
Input:
Semua kemungkinan hasil valid:
12345 54321 12345 54321 11111 55555
1234 5432 2345 4321 2222 4444
123 543 345 321 333 333
12 54 45 21 44 22
1 5 5 1 5 1
Input:
Semua output yang mungkin:
123456 654321 123456 654321 111111 666666
12345 65432 23456 54321 22222 55555
1234 6543 3456 4321 3333 4444
123 654 456 321 444 333
12 65 56 21 55 22
1 6 6 1 6 1
Input:
Semua output yang mungkin:
1 1 7 7 7 1
12 21 67 76 66 22
123 321 567 765 555 333
1234 4321 4567 7654 4444 4444
12345 54321 34567 76543 33333 55555
123456 654321 234567 765432 222222 666666
1234567 7654321 1234567 7654321 1111111 7777777
Input:
Semua output yang mungkin:
1 1 8 8 8 1
12 21 78 87 77 22
123 321 678 876 666 333
1234 4321 5678 8765 5555 4444
12345 54321 45678 87654 44444 55555
123456 654321 345678 876543 333333 666666
1234567 7654321 2345678 8765432 2222222 7777777
12345678 87654321 12345678 87654321 11111111 88888888
Input:
Hanya keluaran yang mungkin:
1
Input:
Semua output yang mungkin:
12 21 12 21 11 22
1 2 2 1 2 1
n==13
, dapatkah baris paling atas menjadi'33333333333333333'
(atau, setara,'31211101987654321'
)?mod 4
pasangannya adalah pasangan yang ketat untuk tantangan ini. Jadi, Anda mungkin tidak mengganti empat bentuk untuk empatmod 4
kasus. Namun pertanyaan yang bagus tetap.Jawaban:
JavaScript (ES6),
9389 byteMengembalikan matriks karakter.
Cobalah online!
Pola alternatif (ukuran yang sama):
Cobalah online!
Berkomentar
Ringkasan bentuk
Berikut ini adalah ringkasan dari bentuk dasar (dihasilkan oleh bersarangn mod 4 :
map
loop) dan bentuk akhir (setelahsort
) untuk setiapsumber
Python 2 , 94 byte
Cobalah online!
sumber
Japt , 8 byte
Mengembalikan array garis.
Cobalah
Disimpan 2 byte berkat Kevin .
sumber
ú
perlu? Tampaknya memutar apakah ini secara implisit?z
.Kanvas , 8 byte
Coba di sini!
sumber
Perl 6 , 94 byte
Cobalah online!
Blok kode anonim yang mengambil nomor dan mengembalikan daftar baris.
sumber
Arang , 17 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Masukan
n
.Buat string dengan menggabungkan angka
1
ken
.Isi segitiga dengan panjang itu dengan tali.
Putar segitiga berlawanan arah jarum jam oleh
n*90
derajat.Refleksikan semuanya, dengan demikian berakhir dengan segitiga yang diputar searah jarum jam dengan
n*90
derajat.sumber
C # (Visual C # Interactive Compiler) , 128 byte
Cobalah online!
sumber
Ruby ,
958279 byteCobalah online!
3 byte disimpan oleh G B.
sumber
R ,
152139137134 byteKode terbuka:
Cobalah online!
sumber
APL + WIN, 45 byte
Anjuran untuk bilangan bulat
Cobalah online! Atas perkenan Dyalog Classic
sumber
PowerShell , 108 byte
Cobalah online!
Agak kasar di tepinya tetapi bekerja. Bergabung dengan angka 1
n
menjadi string kemudian beralih dari 0 ke panjang string-1 itu. Setiap kali, ia menggunakan pengindeksan daftar untuk bertukar ke metode spasi yang benar dan rentang nomor yang digunakan untuk mengiris string baru kami.sumber
Jelly , 12 byte
Cobalah online!
sumber
05AB1E (warisan) ,
141210 byteMenggunakan versi lawas sebagai penulisan ulang sangat lambat untuk beberapa alasan.
Disimpan 2 byte berkat Kevin Cruijssen
Cobalah online!
Penjelasan
sumber
LJη€S
menjadiLSη
, karenaS
secara implisit meratakan.€S
yang tidak berhasil dengan baik;)Stax , 10 byte
Jalankan dan debug itu
sumber
PowerShell ,
10510195 byte-4 byte, terima kasih Arnauld untuk triknya dengan Sortir .
Cobalah online!
Kurang bermain golf:
sumber
R ,
175172154 byteCobalah online!
Kekacauan in-line yang mengerikan!
-3 byte dengan mengubah kondisi rotasi
-17 byte berkat saran digEmAll , dan byte lain setelah bermain golf lebih lanjut
sumber
Bahasa Wolfram (Mathematica) , 137 byte
Cobalah online!
sumber
Python 2 , 116 byte
Cobalah online!
sumber
Merah , 155 byte
Cobalah online!
sumber
perl 5, 117 byte
TIO
sumber
PHP ,
116111109 byteCobalah online!
Jalankan dengan
php -nF
input dariSTDIN
.$ echo 6|php -nF t.php
sumber
Java (JDK) ,
247209188186160 160byteCobalah online!
-38 bytes
terima kasih kepada @KevinCruijssen-21 bytes
dengan membiarkanprintf
pegangan bantalannya.-2 bytes
dengan melakukan substring sebelum mengganti, memungkinkan kami menambahl
satu lokasi daripada dua.-26 bytes
- denganprintf
melakukan padding, string yang penuh dengan ruang tidak lagi diperlukan, dan string digit dapat dihasilkan dengan cara yang lebih pendek.-12 bytes
dengan tidak mengotak-atik dengan satu digit alih-alih mencetak substring dari string digit sempurna yang telah kita miliki.Tidak disatukan
sumber
for(
dapat dihapus.new String(new char[w=s.length()]).replace('\0',' ')
bisa" ".repeat(w=s.length())
menggunakan Java 11+. Anda dapat menghapus tanda kurung di sekitar cek ternary.1>(i-1)%4/2
bisa1>~-i%4/2
.w-1-l++
bisaw+~l++
. Dan Anda tidak perlu menghitung titik koma di byte-count. Yang semuanya digabungkan menjadi 209 byte .