Saya perhatikan permainan tertentu memiliki penghitung kehidupan yang aneh, yang bukannya berhenti 999
, memperoleh angka baru - angka berikutnya adalah mahkota seratus atau π00
. Setelah itu π99
datang mahkota ratus mahkota ( ππ0
) dan angka terakhir, setelahnya ππ9
, adalah mahkota seratus mahkota atau πππ
, yang akan menjadi 1110 dalam desimal.
Tugas Anda adalah menulis program atau fungsi yang menghasilkan penghitung ini.
Diberikan bilangan bulat dari rentang [0,1110]
(inklusif pada kedua ujungnya), menghasilkan string karakter tiga di mana
- setiap karakter dari daftar
0123456789π
- mahkota (π) hanya dapat muncul sebagai karakter paling kiri atau ketika ada mahkota di sebelah kiri itu
- ketika angka ini dibaca sebagai angka desimal tetapi dengan mahkota yang menghitung
10
, Anda mendapatkan kembali nomor aslinya
Uji kasus
0 β "000"
15 β "015"
179 β "179"
999 β "999"
1000 β "π00"
1097 β "π97"
1100 β "ππ0"
1108 β "ππ8"
1110 β "πππ"
Anda dapat menggunakan karakter non-desimal alih-alih mahkota. Untuk mendorong pencetakan yang cantik, karakter mahkota (urutan byte UTF8 "\ 240 \ 159 \ 145 \ 145") dihitung sebagai satu byte alih-alih empat. Program Anda tidak harus bekerja untuk angka di luar rentang yang valid.
Ini adalah kode-golf , jadi jawaban tersingkat, diukur dalam byte, menang!
Jawaban:
05AB1E ,
2018 byteMenggunakan spasi untuk mahkota.
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
JavaScript (Node.js) , 50 byte
Cobalah online!
TIO didasarkan pada jawaban Arnauld. Tampilkan π sebagai
#
.sumber
JavaScript (ES6),
Β 62 46Β44 byteDisimpan 2 byte berkat @nwellnhof
Output mahkota sebagai
x
karakter.Cobalah online!
Bagaimana?
/1+0/
xxx
Contoh:
sumber
s.replace(/./g,`#`)
rapi ... saya punyaArray(s.length+1).join`#`
, dan regex saya juga lebih lama! Kerja bagus, +1Bahasa Pemrograman Shakespeare ,
763692690689683 byteCobalah online!
Gunakan
" "
bukan mahkota. Dengan biaya 4 byte lebih, ini dapat dimodifikasi untuk menunjukkan karakter "terlihat" sebagai gantinya.Penjelasan:
sumber
Python 2 , 53 byte
Angkat topi ke Arnauld untuk -22 byte . Rekursi masih menang.
Cobalah online!
Python 2 , 51 byte
Ini sebagai gantinya menerapkan metode rekursif tsh . Disimpan 2 byte berkat ovs .
Cobalah online!
sumber
1+0
. Oleh karena itu versi 53 byte ini.Python 2 , 52 byte
Cobalah online!
sumber
Retina 0.8.2 , 41 byte
Cobalah online! Menggunakan
#
s bukannyaπ
s. Tautan termasuk kasus uji. Penjelasan:Pad 1 dan 2 digit angka menjadi tiga digit.
Ubah
1
s dari angka 4 digit menjadi#
s dan hapus yang berikutnya0
.sumber
Jelly , 19 byte - 0 = 19
Program lengkap mencetak hasilnya menggunakan karakter spasi sebagai mahkota.
(Sebagai Tautan monadik daftar campuran angka integer dan karakter spasi dihasilkan)
Cobalah online! Atau lihat test-suite .
... mungkin implementasi rekursif akan lebih pendek.
Bagaimana?
sumber
Python 2 , 40 byte
Cobalah online!
Menerapkan ide yang mirip dengan jawaban berbasis regex Mr. Xcoder tetapi tanpa regex. Kami menghapus memimpin 1 di dalam
10000+n
serta karakter berikutnya, lalu pad dengan spasi hingga panjang 3. Hasilnya mirip dengan solusi ovs menggunakanlstrip
tetapi tanpa perlu dua kasus.sumber
Bersihkan , 87 byte
Tidak menampilkan mahkota (penggunaan
c
).Cobalah online!
Bersih , 99 - 3 = 96 byte
Yang ini memiliki mahkota.
Cobalah online!
sumber
Japt, 20 byte
Port solusi naif (dan sedikit mabuk!) Dari Arnauld. Penggunaan
"
untuk mahkota.Cobalah
sumber
Java 10,
8483 bytePelabuhan @tsh 'C komentar .
Gunakan
.
bukan mahkota.Cobalah online.
Pendekatan alternatif (84 (87-3) byte):
Port dari jawaban JavaScript @tsh .
Cobalah online.
sumber
APL (Dyalog Unicode) , 32 byte
Cobalah online!
Awalan fungsi langsung.
Port dari Jawaban JS @ tsh .
Bagaimana:
sumber
PHP, 71 byte
cetakan
C
untuk mahkota. Jalankan sebagai pipa dengan-nR
atau coba online .sumber
Haskell , 48 byte
Cobalah online!
sumber
C,
Β 84Β58 byteTerima kasih kepada @tsh untuk menghemat 25 byte dan terima kasih kepada @ceilingcat karena telah menghemat satu byte!
Cobalah online!
sumber
f(n,p){for(p=1000;p/=10;)n-=putchar(n/p>9?46:48+n/p)%12*p;}
sed , 39
48 byte, tetapi skor adalah 39, karena setiap π dihitung sebagai 1.
Cobalah online!
sumber
Perl 6 , 38 - 9 = 29 byte
-2 byte terima kasih kepada Jo King
Cobalah online!
Terinspirasi oleh solusi JavaScript Arnauld.
sumber
Bersihkan , 96 byte
Saya pikir Super Mario 3D Land, New Super Mao Bros.2, dan Super Mario 3D World memiliki counter kehidupan ini.
Saya setuju dengan Clean .
sumber