Biarkan saya memperkenalkan Anda ke nomor GAU
GAU(1) = 1
GAU(2) = 1122
GAU(3) = 1122122333
GAU(4) = 11221223331223334444
GAU(6) = 11221223331223334444122333444455555122333444455555666666
...
GAU(10) = 11221223331223334444122333444455555122333444455555666666122333444455555666666777777712233344445555566666677777778888888812233344445555566666677777778888888899999999912233344445555566666677777778888888899999999910101010101010101010
Tantangan ini sangat sederhana!
Diberikan bilangan bulat n> 0, cari jumlah digit GAU (n)
Contoh
Mari kita membuat GAU (4)
kita mengambil langkah-langkah berikut (sampai kita mencapai 4) dan menggabungkannya
[1][122][122333][1223334444]
Anda harus menulis setiap angka sebanyak nilainya, tetapi Anda harus menghitung setiap kali dari 1
Mari kita coba membuat GAU (5)
kita harus menghitung dari 1 ke 1
[1]
lalu dari 1 hingga 2 (tetapi ulangi setiap angka sebanyak nilainya )
[122]
lalu dari 1 hingga 3
[122333]
lalu dari 1 hingga 4
[1223334444]
dan akhirnya dari 1 hingga 5 (ini adalah langkah terakhir karena kami ingin menemukan GAU ( 5 ))
[122333444455555]
Sekarang kita mengambil semua langkah ini dan menggabungkannya
hasilnya GAU (5)
11221223331223334444122333444455555
Kami tertarik pada jumlah digit nomor GAU ini.
Uji kasus
Input⟼Output
n ⟼ Length(GAU(n))
1 ⟼ 1
2 ⟼ 4
3 ⟼ 10
10 ⟼ 230
50 ⟼ 42190
100 ⟼ 339240
150 ⟼ 1295790
Ini adalah tantangan kode-golf .
Kode terpendek dalam byte akan menang.
Jika Anda masih memiliki pertanyaan, silakan beri tahu saya.
Saya benar-benar ingin semua orang di sini memahami pola rumit-ajaib-tersembunyi ini
n ⟼ Length(GUA(n))
, bukan GAU (n).Jawaban:
SOGL V0.12 ,
1110875 byteCoba Di Sini! - ini diharapkan disebut sebagai fungsi dengan input pada stack dan kotak input kosong.
Alternatif 7 byte mengambil input dari kotak input:
Coba Di Sini!
sumber
push that numbers length without popping the number
bagusHaskell , 45 byte
Cobalah online!
sumber
Brain-Flak , 166 byte
Cobalah online!
Penjelasan
sumber
Sekam , 5 byte
Cobalah online!
Penjelasan
sumber
Jelly , 7 byte
Cobalah online!
sumber
05AB1E , 5 byte
Cobalah online!
Penjelasan
sumber
Python 2 , 53 byte
Cobalah online!
sumber
Sekam , 7 byte
Cobalah online!
Tidak Terikat / Penjelasan
sumber
Sekam , 7 byte
Cobalah online!
Penjelasan
sumber
JavaScript (ES6),
5755 byteCobalah online!
sumber
Python 2 ,
5958 byteSatu lagi bytes debu berkat Jonathan Frech.
Cobalah online!
Tidak pendek tapi eh ... apa-apaan ini.
sumber
len(`i`)*i for
->i*len(`i`)for
.CJam , 20 byte
Cobalah online!
Nomor dilewatkan di bidang "input".
Penjelasan yang tidak dikelompokkan: (contoh input = 2)
Sepertinya sulit ketika dijelaskan lol.
sumber
J, 24 byte
Pendekatan tingkat tinggi yang serupa dengan jawaban APL dzaima, diterjemahkan ke dalam J, kecuali kita menghitung panjang angka dengan mengubahnya menjadi string terlebih dahulu alih-alih mengambil log, dan kita bisa menggunakan kait J untuk mengalikan panjang itu dengan angka itu sendiri:
(*#@":"0)
. Setelah itu baru jumlah penjumlahan pindaian.Cobalah online!
sumber
1(#.]*#\*#\.)1#@":@+i.
juga bekerja untuk 22 byteR , 39 byte
Verifikasi semua kasus uji!
Algoritma sederhana; Saya mengamati, karena kebanyakan lakukan, bahwa untuk
i
di1:n
,i
diulangi*(n-i+1)
kali. Jadi saya membuat vektor itu, menghitung jumlah karakter di masing-masing, dan menjumlahkannya.sumber
Python 2,
5150 bytesumber
JavaScript (ES6),
5042 byteDiperbarui: sekarang pada dasarnya merupakan port dari apa yang dilakukan jawaban lain.
Uji kasus
Tampilkan cuplikan kode
sumber
Mathematica, 66 byte
sumber
QBIC , 21 byte
sumber
Sebenarnya , 13 byte
Cobalah online!
Penjelasan:
sumber
Japt ,
1211109 byteCobalah atau uji semua angka dari 1 hingga 150 .
Penjelasan
Input bilangan bulat implisit
U
.Buat array bilangan bulat dari 1 ke
U
dan kemudian hasilkan sub-array dari 1 ke setiap bilangan bulat.Lewati elemen masing-masing sub-array melalui fungsi.
Konversi elemen saat ini menjadi string (
s
), dapatkan panjangnya (Ê
) dan kalikan dengan elemen.Kurangi array utama dengan tambahan setelah terlebih dahulu melakukan hal yang sama untuk setiap sub-array.
sumber
Jq 1.5 ,
824943 byteDiperluas
Contoh Jalankan
Cobalah online! juga jqplay.org
sumber
Ditumpuk , 28 byte
Cobalah online!
Beberapa orang mungkin bertanya, "Di titik mana alias tidak bisa dibaca?" Jika ini tidak dekat, Anda memiliki definisi "keterbacaan" yang sangat liberal.
Penjelasan
sumber
Ruby ,
4140 byteCobalah online!
sumber
C # (.NET Core) ,
948074 byteCobalah online!
Saya berharap untuk menemukan solusi langsung seperti apa jawaban @ kamoroso94 dimulai, tetapi menyerah karena saya menghabiskan terlalu banyak waktu untuk itu. Mungkin ada cara untuk melakukannya, tetapi formula perlu disesuaikan untuk setiap langkah besarnya.
Ucapan Terima Kasih
14 byte disimpan berkat @someone
6 byte disimpan berkat @Kevin Cruijssen
sumber
n=>{int b=0,a=0,i;for(;a++<n;)for(i=0;i++<a;)b+=i.ToString().Length*i;return b;}
Cobalah online! untuk 80 byte dan kinerja.i.ToString()
dapat(i+"")
menyimpan lebih banyak byte.MATL , 15 byte
Cobalah online!
Penjelasan:
sumber
:ttP*Y"VXzn
Perl 6 , 36 byte
Menguji
Diperluas:
sumber
Arang ,
1814 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Sunting: Menggunakan
Sum
me me save 4 byte. Penjelasan:sumber
Σ
instead...Sum
is still 18 bytes:Print(Cast(Sum(Map(InclusiveRange(1, InputNumber()), Sum(Map(InclusiveRange(1, i), Times(l, Length(Cast(l)))))))));
Incremented
:P≔⊕NθIΣEθ×⁻θι×ιLIι
. However, usingIncremented
instead ofInclusiveRange
shaves 4 bytes off my previous comment!Ohm v2, 7 bytes
Try it online!
sumber
[Dyalog APL],
2220 bytesTry it online!
Explanation:
sumber
Röda, 31 bytes
Try it online!
sumber