Tantangan:
Diberikan bilangan bulat indeks n
, baik output n
item 'dalam urutan ini, atau output urutan hingga dan termasuk indeks n
:
25,25,7,28,29,20,21,22,23,14,35,26,7,28,29,20,16,29,12,15,28,21,14,17,30,13,16,29,12,15,28,21,10,6,12,18,15,11,7,13,19,17,13,9,15,21,18,14,10,16,22,19,15,11,17,23,20,16,12,18,24,21,17,13,19,25,23,19,15,21,27,24,20,16,22,28,25,21,17,23,29,16,13,9,15,21,18,14,10,16,22,20,16,12,18,24,21,17,13,19
Bagaimana cara kerja urutan ini?
CATATAN: Dalam penjelasan ini, indeks n
1-diindeks.
Masukan nomor 1
melalui x
dua jalur panjang n*6 - 1
, di mana x
tergantung pada iterasi saat ini dan panjang nomor yang digunakan, dan kemudian menjumlahkan angka dari n
'th / paling kanan Olympic Rings dari dua baris.
Angka pertama dalam urutan dihitung sebagai berikut:
The length of the lines are 5 (because 1*6 - 1 = 5):
12345
67891(0)
Then leave the digits in an Olympic Rings pattern:
1 3 5
7 9
And sum them:
1+3+5+7+9 = 25
Jadi n=1
hasilnya 25
.
Angka kedua dalam urutan dihitung sebagai berikut:
The length of the lines are 11 (because 2*6 - 1 = 11):
12345678910
11121314151(6)
Then leave the digits in the second/right-most Olympic Rings pattern:
7 9 0
4 5
And sum them:
7+9+0+4+5 = 25
Jadi n=2
hasilnya 25
.
Angka ketiga dalam urutan dihitung sebagai berikut:
The length of the lines are 17 (because 3*6 - 1 = 17):
12345678910111213
14151617181920212(2)
Then leave the digits in the third/right-most Olympic Rings pattern:
1 2 3
0 1
And sum them:
1+2+3+0+1 = 7
Jadi n=3
hasilnya 7
.
dll.
Aturan tantangan:
- Saat Anda mengeluarkan
n
item 'dalam urutan, Anda diizinkan untuk mengambil input sebagai 0-diindeks daripada 1-diindeks, tetapi perlu diingat bahwa perhitungann*6 - 1
kemudian akan menjadi(n+1)*6 - 1
atau(n+1)*5 + n
. - Angka tunggal lebih dari satu digit dapat dipisah pada akhir baris pertama ketika kami telah mencapai panjangnya
n*5 + n-1
, jadi ada kemungkinan bahwa angka dengan 2 digit atau lebih sebagian adalah bagian trailing dari baris 1, dan sebagian bagian terdepan dari baris 2.
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, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
Berikut adalah nampan tempel dari kotak uji 1-1.000 , jadi jangan ragu untuk memilih salah satu dari mereka.
Beberapa kasus uji tambahan yang lebih tinggi:
1010: 24
1011: 24
2500: 19
5000: 23
7500: 8
10000: 8
100000: 25
1*5 + 1-1 = 5
? Bukankah seharusnya begitu1*5 + 5 - 1 = 9
?n=1
sehinggan*5 + n-1
menjadi1*5 + 1-1
, yang pada gilirannya5 - 0 = 5
.n * 5 + n - 1
sama dengann * 6 - 1
?Jawaban:
Sekam , 16 byte
Cobalah online!
-3 byte terima kasih kepada H.PWiz .
Penjelasan (terburu-buru):
sumber
Retina ,
706862 byteCobalah online!
Penjelasan
Mari kita panggil input n , dan kita akan gunakan
3
sebagai contoh.The
10**
adalah singkatan10*$&*_
yang menggantikan input dengan string 10n garis bawah.Sekarang kami mengganti setiap garis bawah dengan panjang string hingga dan termasuk garis bawah itu. Jadi ini hanya menghasilkan angka dari 1 hingga 10n semua digabung bersama ( 10n selalu cukup untuk mengisi dua baris dari panjang yang diperlukan).
Eval! Tahap ini dan selanjutnya akan menghasilkan kode sumber dari program lain, yang kemudian dijalankan melawan string bilangan bulat bersambung.
Untuk menghasilkan program itu, tahap ini pertama-tama mengganti bilangan bulat dengan string garis bawah 6n (
$+
mengacu pada input asli program).Kemudian menggantikan mereka garis bawah dengan
L`.{…}
, di mana…
adalah 6n-1 (panjang garis yang kita cari di). Jadi kami telah membuat regex, yang kuantifiernya bergantung pada input asli.Ketika program ini dievaluasi, itu cocok dengan potongan panjang 6n-1 , yang akan ada setidaknya dua. Sebagai contoh input
3
kami, kami berakhir dengan:Sekarang kita hanya perlu mengekstraksi digit yang relevan.
Pertama, di setiap baris (
%
) kami menghapus semua kecuali lima digit terakhir (,-6
). Itu memberi kitaAkhirnya:
Kami memperluas setiap digit lainnya (
2
) dalam sepuluh pertama (9
, ini berbasis 0) di unary. Mereka kebetulan berada di posisi Cincin Olimpiade.Dan kami menghitung jumlah garis bawah yang dihasilkan, untuk menjumlahkannya dan mengonversi hasilnya menjadi desimal.
sumber
1
.-7
Python 2 ,
9490 byteCobalah online!
sumber
Japt ,
333230292827 byteOh, ini tidak cantik!
Menghasilkan istilah ke- n , diindeks 1.
Cobalah
Penjelasan
sumber
Python 2 , 97 byte
Cobalah online!
sumber
Python 3,
129123 byteCobalah secara Online
Ini cukup banyak yang berantakan, tetapi berhasil.
sumber
05AB1E ,
222120 byteCobalah online!
Penjelasan
Pendekatan alternatif 21 byte
sumber
Jelly , 19 byte
Cobalah online!
sumber
J ,
61, 5857 byteCobalah online!
sumber
Ruby ,
65 6356 byteCobalah online!
sumber
Bersih ,
138101 byteCobalah online!
sumber
Java 8,
138111109 byteTentu saja saya harus menjawab tantangan saya sendiri. :)
Saya kehilangan kode awal yang saya gunakan untuk membuat hasil tes dalam deskripsi tantangan, jadi saya baru saja memulai.
Penjelasan:
Cobalah online.
sumber