(tidak, bukan yang itu )
Tantangan
Anda akan diberikan dua input. Yang pertama adalah bilangan bulat positif n > 0
, yang digunakan untuk menampilkan n x n
segitiga siku-siku angka 1, 2, 3, ... n
. Segitiga ini dimulai di sudut dan meningkat secara horizontal dan vertikal dengan satu dan diagonal dua. Lihat contoh di bawah ini untuk klarifikasi. Pertahankan satu spasi di antara kolom dan pertahankan agar semua angka tetap lurus di kolom tertentu. ( Lagipula ini ascii-art ).
Input kedua x
,, adalah salah satu dari empat karakter ASCII tunggal yang berbeda dari pilihan Anda yang menentukan sudut awal segitiga (dan karenanya orientasi). Misalnya, Anda bisa menggunakan 1,2,3,4
atau a,b,c,d
atau #,*,!,)
, dll Silakan tentukan dalam jawaban Anda bagaimana orientasi bekerja.
Untuk klarifikasi dalam tantangan ini, saya akan menggunakan 1,2,3,4
yang akan sesuai dengan 1
untuk kiri atas, 2
untuk kanan atas, dan seterusnya searah jarum jam.
Contohnya
Sebagai contoh, untuk n = 5
, x = 1
output berikut:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Untuk input n = 11
, x = 1
keluarkan yang berikut (perhatikan spasi tambahan sehingga digit tunggal sejajar dengan benar):
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11
6 7 8 9 10 11
7 8 9 10 11
8 9 10 11
9 10 11
10 11
11
Dengan input n=6
dan x=2
output:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
Dengan input n = 3
dan x = 4
, output:
3
2 3
1 2 3
Dengan input n = 1
dan apa pun x
, output:
1
Aturan
- Leading / trailing newlines atau spasi putih lainnya adalah opsional, asalkan nomornya berbaris dengan tepat. (Misalnya, membuntuti spasi putih untuk membuat output kuadrat dapat diterima).
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Output dapat berupa konsol, disimpan sebagai gambar, dikembalikan sebagai daftar string, dll . Format apa pun yang nyaman dan diizinkan .
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Jawaban:
Jelly , 13 byte
Cobalah online!
Argumen kiri: Argumen
n
kanan:
x
(0
= kiri1
atas,2
= kanan atas, = kiri3
bawah , = kanan bawah)sumber
MATL , 18 byte
Input pertama adalah
n
. Input kedua adalahx
, yang dapat berupa:0
: kiri atas1
: kiri bawah2
: kanan bawah3
: kanan atas(Atau bisa juga bilangan bulat lainnya, yang ditafsirkan modulo 4).
Cobalah di MATL Online!
sumber
APL (Dyalog) , 29 byte
Cobalah online!
Bagaimana?
¨⍳⍵
- untuk setiapi
dalam kisarann
(⍳+⍵-⊢)
- Menghasilkan kisarani
dengan penambahan vektorn - i
↑⌽
- mundur dan ratakan⌽∘⍉
- Putar ke kanan⍣⍺⊢
-x
kali' '@(=∘0)
- hapus nolsumber
JavaScript
130128154142138135133 byte* Memperbaiki masalah padding
sumber
Python 2 ,
124120 byteCobalah online!atau Coba semua test case
(r+[n]+['']*i)[-n:]
akan menambahkan beberapa string kosong ke daftar nomor, dan memotong ke ukuran yang tepat,zip
dengan[::1-x%4/2*2]
dan[::1-x/3*2]
akan membuat rotasi, dan%%%ds'%len(`n`)*n
akan menghasilkan string untuk fomating (seperti' %3s %3s %3s'...
) untuk digunakan pada setiap angka + daftar string kosongsumber
Mathematica, 89 bytes
di sini adalah solusi lain yang bekerja di TIO
Mathematica, 122 byte
Cobalah online!
sumber
Arang , 39 bytes
Cobalah online! Catatan: Ruang tambahan. Tautan adalah untuk mengucapkan versi kode. Nilai kedua adalah jumlah rotasi berlawanan arah jarum jam sehingga 0 adalah kiri atas, 1 kiri bawah, 2 kanan bawah, 3 kanan atas. Penjelasan:
sumber
Javascript (ES6),
241222214 byteKurang Golf
Catatan tentang orientasi.
Parameter kedua adalah karakter dari {'0', '1', '2', '3'} dan secara otomatis mengetik dikonversi ke angka oleh
&
operator. Jika bit 0 (lsb) dari angka diatur, garis dibalik secara vertikal. Jika bit 1 (nlsb) diatur, kolom-kolom dibalik secara horizontal. Karakter angka desimal lainnya dapat digunakan dengan hasil yang dapat diprediksi.Trailing Spaces
Entri kosong dalam string keluaran telah diganti dengan spasi, yang berarti garis memiliki spasi tambahan dalam orientasi '0' dan '1'.
sumber
Lua, 250 byte
Mengambil parameter [w] idth dan [m] ode menggunakan 1,2,3,4 untuk mode seperti dijelaskan dalam contoh.
sumber
05AB1E (61 byte)
Cobalah online
sumber