Tugas Anda adalah mengisi ember dengan angka hingga input yang diberikan.
Aturan
Angka menempati posisi paling kiri kemudian paling kanan, lalu paling kiri dan seterusnya.
Setelah meluap, jumlahnya mulai berkumpul di sekitar ember dengan cara yang sama. Mereka menempati posisi secara diagonal.
Contoh-contoh harus memperjelas apa output yang diharapkan (Beberapa aturan disebutkan dalam contoh).
Untuk lebih dari 10, gunakan digit paling kanan
Contoh:
The bucket:
| | or | |
| | | |
| | | |
| | | |
|------| |______|
input:1 (You can start from either 0 or 1)
output:
| | (There can be whitespace to the left even if there is no overflow
| | but the bucket must not be distorted.)
| |
|1 |
|------|
input:6
output:
| |
| |
| |
|135642|
|------|
input:8
output:
| |
| |
|7 8|
|135642|
|------|
input:23
output:
|913 20|
|357864|
|791208|
|135642|
|------|
input:27
output:
|913420|
|357864|
|791208|
|135642|
75|------|6
input:30
output:
|913420|
|357864|
|791208|
9|135642|0
75|------|68
input:40
output:
|913420|
|357864|
5|791208|6
939|135642|040
7175|------|6828
input:54 (Maximum input for start=1)
3|913420|4
13|357864|42
915|791208|620
7939|135642|0408
57175|------|68286
Ini adalah kode-golf sehingga kode terpendek menang.
|024531|
untuk ) atau hanya input?Jawaban:
JavaScript (Node.js) ,
145143 bytePola hard-kode (lihat di sini untuk lebih banyak matematika).
1-diindeks.
Cobalah online!
Disimpan 2 byte berkat @tsh
sumber
/[^\s|-]/
->/[0-z]/
JavaScript (ES6),
144 ... 139137 bytePendekatan matematis (lihat sini untuk lebih sedikit matematika).
Diindeks 0.
Cobalah online!
Bagaimana?
Kami mendefinisikan:
Dengan menulis nilai penuh daripada hanya angka satuan, kita mendapatkan tabel berikut:
Tabel ini pada dasarnya simetris di sumbu y, kecuali bahwa nilai-nilai di sisi kiri adalah genap dan nilai-nilai di sisi kanan adalah rekan-rekan mereka yang aneh.
Kami mendefinisikan:
Dan untuk setiap sel, kami menambahkan:
Berkomentar
sumber
Python 2 , 170 byte
Cobalah online!
sumber
Java 10, 168 byte
Port dari jawaban JavaScript @Arnauld (demikian juga 1-diindeks, dan keluaran
-
sebagai bawah). Jika Anda menyukai jawaban ini, pastikan untuk menghapusnya juga!Cobalah online.
Penjelasan:
sumber
6502 kode mesin (C64), 130 byte
Ini menggunakan versi modifikasi dari pendekatan "preformatted" dari beberapa jawaban lain. Ini berisi string penuh dari ember, tetapi digit diganti dengan nilai mulai dari
0xC1
, sementara karakter untuk pencetakan langsung berada dalam kisaran0x01
-0x7f
.Charset C64 tidak menyertakan karakter pipe (
|
), oleh karena itu diganti dengan karakter PETSCII yang serupa0x7d
.Demo online
Penggunaan:
SYS49152,[n]
(1-diindeks, misalnyaSYS49152,54
untuk output penuh)Berkomentar pembongkaran :
sumber
Arang , 64 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Masukkan nomor.
Gambar setengah dari ember dan kemudian cermin untuk menyelesaikan ember.
Ulangi untuk setiap sisi ember.
Refleksikan ember sehingga kita dapat menggambar ke arah yang konsisten pada kedua loop, dan melompat ke posisi digit pertama di sisi ember itu.
Ulangi jumlah digit di sisi ember itu.
Cetak digit berikutnya dan gerakkan kursor ke atas dan ke kiri.
Sesuaikan posisi kursor dengan membaca offset dari dua string terkompresi,
003003003005203004000500
(offset horizontal) dan11011011011510200300040000
(offset vertikal). Offset ini memperhitungkan pergerakan kursor di atas yang dengan mudah berarti bahwa mereka tidak harus negatif.sumber