Diberikan bilangan bulat positif dan menghasilkan angka ke- n dari urutan euro-iginal.
Menghitung Urutannya
Urutan ini sama dengan OEIS A242491 .
Suatu angka adalah bagian dari urutan tersebut jika nomor tersebut dapat dibuat dengan menggunakan sebanyak koin atau catatan euro yang berbeda, tetapi masing-masing hanya satu . Perhatikan bahwa Anda tidak harus mempertimbangkan sen.
Contoh:
6
akan berada dalam urutan, karena dapat terdiri dari koin 1 euro dan 5 euro.
4
TIDAK akan berada dalam urutan, karena tidak dapat dibentuk dengan persyaratan yang diberikan.
Untuk memberikan gambaran kepada semua orang, inilah daftar dengan nilai euro yang harus Anda pertimbangkan:
1 €, 2 €, 5 €, 10 €, € 20, € 50, € 100, € 200, € 500
Perhatikan bahwa urutan ini hanya berkisar dari 0 (ya, 0 termasuk!) Hingga 888.
Berikut adalah 15 elemen pertama dari urutan ini:
0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, ...
Uji Kasus
Input -> Output
2 -> 1
6 -> 6
21 -> 25
33 -> 50
a(1)=1
seperti tabel oeis ?N<=512
?0
untukn=0
itu baik-baik saja.0->0; 1->1; 5->6; 20->25; 32->50; 511->888
bukannya1->0; 2->1; 6->6; 21->25; 33->50; 512->888
.Jawaban:
Jelly , 7 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2 , 32 byte
Cobalah online!
Python 2 , 34 byte
Cobalah online!
sumber
Sekam ,
8 75 byteCobalah online! Sunting: -3 bytes berkat Zgarb!
Saya mendengar bahwa itu direncanakan untuk berubah
İ€
ke urutan yang terbatas[0.01,0.02,0.05,0.1,0.2,0.5,1,2,5,10,...,500]
di masa depan. Setelah itu diterapkan, kode berikut harus bekerja hitungan byte 7:di mana
↓6
menjatuhkan enam elemen pertama dari urutan. Cobalah online!sumber
0
s ke output?Σ!Ṗ↑9İ€
harus menyimpan byte.İ€
telah diubah. Bahwa saat ini kembali2500
bukan25
hanya kebetulan.↑9
, karena teks tantangan tidak menyebutkan apa yang harus terjadi untuk input melebihi 512.Perl 5 , 29 byte
28 byte kode +1 untuk
-p
.Menggunakan pengindeksan berbasis 0.
Cobalah online!
sumber
sprintf"%o",$_-1
, karena urutan diindeks dari 1 misalnya2 -> 1
, meskipun urutan OEIS dimulai dengan 1-1
sampai OP diklarifikasi!Jelly , 11 byte
Cobalah online!
Terima kasih banyak @Erik the Outgolfer untuk banyak bantuan dalam obrolan!
Penjelasan
sumber
Mathematica, 47 byte
Mathematica, 48 byte
-6 byte dari Martin Ender
sumber
Join[x={1,2,5},10x,100x]
danSubsets@
.Java 8,
2826 byteDiindeks 0:
Port of @xnor 's Python 2 answer (yang dulunya dihapus, maka jawaban asli 1-diindeks di bawah).
Coba di sini.
Jawaban 1-diindeks lama ( 28 byte ):
Port of @Tfeld 's Python 2 menjawab sebelum dia melakukan edit terakhirnya . Alih-alih menggunakan
~-
beberapa kali, itu digunakan--n
untuk mengurangin
sebanyak 1 tepat setelah memasuki fungsi lambda.Coba di sini.
sumber
05AB1E , 7 byte
Diindeks 0.
Jawaban Port of Mr. Xcoder Jelly
Cobalah online!
Penjelasan
sumber
8в4‰ε5β}J
(0-diindeks)8в4‰J5öJ
8 dengan trik Dennis. Milikmu memang lebih cocok untuk 05AB1E :)Python 2 ,
403836 byteTerinspirasi oleh jawaban xnor , tetapi menggunakan pengindeksan 1.
Cobalah online!
Python 2 ,
786562615856 byteCobalah online!
sumber
a(1)=1
diizinkan.Jelly , 15 byte
Diindeks 0.
Cobalah online!
Penjelasan
Ini didasarkan dari solusi Python xnor , di mana algoritma tersebut adalah n + n / 4 + n / 32 * 10 + n / 256 * 100 .
Karena n pertama tidak dimodifikasi, ini sama dengan:
Karena 4, 32, dan 256 semuanya adalah kekuatan dua, mereka dapat diterjemahkan ke dalam bit shift.
Golfiness tidak diterjemahkan dengan baik dalam Python, tetapi mengubah daftar menjadi string indeks halaman kode Jelly mengurangi jumlah byte Jelly.
Jelly , 24 byte
Cobalah online!
sumber
€
dalam kode Anda. :) Tapi -1 karena ini adalah pertama kalinya jawaban Jelly lebih panjang daripada jawaban Java saya. XD Malu pada Anda (dan gl & hf bermain golf lebih lanjut). ;)Oktaf , 59 byte
Cobalah online!
Penjelasan
Kode menciptakan urutan penuh dan kemudian mengindeksnya.
Pertama, ekspresi biner dari angka
0
,1
, ...511
yang dihasilkan sebagai 512 × 9 matriks:(
-48
bagian diperlukan karena hasildec2bin
adalah karakter, bukan angka). Ini memberiKemudian produk Kronecker dari
[1 2 5]
dan[1 10 100]
dihitungdan ditransformasikan
yang memberi sembilan kemungkinan nilai euro sebagai vektor 9 × 1:
Matriks-mengalikan matriks dan vektor di atas
memberikan vektor 512 × 1 yang berisi semua kemungkinan angka dalam urutan, dengan pengulangan dan tidak disortir:
Deduplikasi dan penyortiran
memberikan urutan lengkap:
Akhirnya, input digunakan untuk mengindeks ke dalam urutan ini
untuk menghasilkan output.
sumber
Ruby ,
2827 byteCobalah online!
Penjelasan
Keluarkan string oktal, ganti digit 4..7 dengan 5..8
sumber
Utilitas Bash + GNU, 20
Membaca indeks tanpa indeks dari STDIN.
Cobalah online .
sumber
05AB1E , 20 byte
Cobalah online!
1-diindeks, menggunakan rumus
[(n%3)^2 + 1]*10^floor(n/3)
untuk menghasilkan 10 istilah pertama, kemudian menggunakan powerset untuk menghitung semua kombinasi yang mungkin ... Lalu saya urutkan dan tarika[b]
.Lihat dalam aksi di bawah ini:
sumber
JavaScript (ES6), 34 byte
Atau 32 byte menggunakan pengindeksan 0 yang benar:
sumber
n=1
memberi0
?Jelly , 20 byte
Cobalah online!
Saya tahu ini lebih panjang dari jawaban yang ada tetapi saya pikir pendekatan ini bisa digunakan di sini: P
-2 byte terima kasih kepada Erik the Outgolfer
sumber
1,10,ȷ2
->“¢½d‘
Retina , 42 byte
Cobalah online! Tautan termasuk kasus uji. Diindeks 0. Penjelasan:
Konversi dari desimal ke unary, dengan a
;
akhiran.Konversi ke oktal, tetapi masih menggunakan representasi digit dengan unary
;
unary setelah setiap nilai unary.Tambahkan 1 ke nilai 4-7.
Konversi setiap nilai ditambah sufiksnya menjadi desimal.
sumber
Pyth , 12 byte
Menggunakan sihir Dennis .
Coba di sini.
Pyth ,
16 1513 byteVerifikasi semua kasus uji.
Terima kasih kepada Erik the Outgofer untuk beberapa ide.
sumber
C , 67 byte
Port langsung dari jawaban JavaScript Neil , tapi saya pikir ini harus ditambahkan untuk kelengkapan.
Diuji pada GCC versi 6.3.0. Ini akan membuang beberapa peringatan, tetapi tetap kompilasi.
sumber