Pertimbangkan string tak hingga dari semua bilangan desimal non negatif yang digabungkan bersama-sama secara berurutan (mirip dengan konstanta Champernowne ):
0123456789101112131415161718192021222324252627282930...979899100101102103...
Tulis program atau fungsi yang menggunakan bilangan bulat negatif yang mengindeks (berbasis-0) ke dalam string tak hingga ini. Output truthy nilai jika digit diindeks adalah 0, jika tidak output falsy nilai jika digit adalah 1-9.
Kode terpendek dalam byte menang.
25 input pertama yang menghasilkan kebenaran adalah:
0
11
31
51
71
91
111
131
151
171
191
192
194
197
200
203
206
209
212
215
218
222
252
282
312
Puji jika program Anda efisien memori, tetapi ini bukan keharusan.
code-golf
string
integer
decision-problem
Hobi Calvin
sumber
sumber
Jawaban:
Haskell, 25 byte
Contoh penggunaan:
(<'1').((show=<<[0..])!!) 312
->True
sumber
05AB1E , 5 byte
Kode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online!
sumber
Mathematica,
4240 byteFungsi anonim. Mengambil angka sebagai input dan mengembalikan salah satu
True
atauFalse
sebagai output. Solusi (?) Yang lebih lama, namun lebih efisien:sumber
CJam, 9 byte
Ini adalah blok tanpa nama (fungsi) yang mengambil bilangan bulat dan mengembalikan 0 atau 1 sesuai.
Penjelasan:
Penerjemah online . Perhatikan bahwa
~
mengevaluasi blok. Alternatif, Anda dapat menjalankan suite tes ini yang digunakan,
untuk memfilter 1000 angka pertama untuk nilai-nilai kebenaran.sumber
MATL, 11 byte
Cobalah secara Online!
Penjelasan :
sumber
Brachylog ,
108 byte2 byte berkat Fatalize.
Cobalah online!
sumber
@e
vectorizes jadiy@ec:?m0
berfungsi, untuk menyimpan 2 byte.#0
,#1
,#+
,#_
,#>
dan#<
vectorize seperti@e
tidak. Beberapa predikat yang membuat vektorisasi seperti+
atau*
tidak membuat vektorisasi secara rekursif ke level daftar terendah, dan tidak melakukan hal yang sama tergantung pada struktur input.Perl 6 ,
2625 byteLambda yang mengambil nomor sebagai input dan mengembalikan a
True
atauFalse
.Hemat memori.
Bagaimana itu bekerja
0..*
- Bangun kisaran dari 0 hingga tak terbatas.map(|*.comb, )
- Lazily iterate range, mengganti setiap angka dengan karakter dari representasi string, dan mengembalikan urutan malas baru. The|
membuat urutan baru diratakan.[$_]
- Ambil elemen pada indeks yang ditentukan oleh parameter lambda (dinyatakan secara implisit)$_
.+
- Paksa ke nomor. (Langkah ini diperlukan karena memaksa string secara langsung ke boolean selalu memberikan True kecuali string tersebut kosong.)!
- Memaksa ke boolean dan meniadakannya.( coba online )
EDIT: -1 byte berkat b2gills.
sumber
{!+map(|*.comb,0..*)[$_]}
saya menemukan{!+({|($++).comb}...*)[$_]}
sebelum melihat apakah sudah ada jawaban P6.!+
dapat digantikan oleh1>
Jelly , 6 byte
Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Python 3.5, 40 byte
Mengujinya pada repl.it .
Bagaimana itu bekerja
Untuk input n ,
'%d'*-~n
ulangi format string n + 1 kali.(*range(n),n)
membuka kemasan kisaran [0, ..., n - 1] dan menghasilkan tupel (0, ..., n) ....%...
mengganti setiap kemunculan % d dengan bilangan bulat yang sesuai dalam kisaran, menghasilkan string 01234567891011 ... n .(...)[n]<'1'
memilih karakter pada indeks n dan menguji jika kurang dari karakter 1 .sumber
Python 3, 44 byte
Fungsi anonim yang mengambil input melalui argumen dan mengembalikan
True
atau yangFalse
sesuai.Bagaimana itu bekerja
Cobalah di Ideone
sumber
Pyth,
87 byteTerima kasih kepada @LeakyNun untuk -1 byte
Ini adalah upaya pertama saya bermain golf di Pyth.
Program lengkap yang mencetak
True
atauFalse
sesuai kebutuhan.Cobalah online
25 input jujur yang pertama
Bagaimana itu bekerja
sumber
SILOS , 141 byte
Cobalah online!
Hanya menggunakan 5 bilangan bulat, efisiensi memori maksimum \ o /
Penjelasan
Kami menghasilkan digit sebanyak input dalam konstanta Champernowne.
Dalam loop utama, kami melakukan hal berikut:
100
digit s1234
diperoleh dengan di(1234/10)%10
mana/
pembagian lantai.sumber
JavaScript (ES6), 45 byte + pujian
Versi non-Kudos terbaik saya adalah 34 byte:
sumber
JavaScript (ES6), 47 byte
n=>[...Array(n+1)].reduce((a,_,i)=>a+i,'')[n]<1
sumber
Javascript (ES6),
4233 byteContoh:
sumber
Groovy, 56 byte
Tidak ada yang mewah, tetapi saya mencoba beberapa hal baru.
sumber
Perl, 24 byte
Termasuk +1 untuk
-p
Jalankan dengan input pada STDIN:
cetak 1 untuk nol, tidak ada yang sebaliknya
zero.pl
sumber
PHP, 36 byte
Cetak
1
jika argumen Champernowne-desimal adalah0
, kalau tidak cetak '' (string kosong).sumber
Ruby,
3523 byteIni adalah fungsi anonim yang menggabungkan
[0..n]
, mengambiln
indeks th dan memeriksa apakah karakter itu"0"
(kurang dari"1"
). Saran bermain golf diterima.Tidak melakukanolf
sumber
Sebenarnya,
98 byteJawaban ini merangkum kisaran
[0..n]
, mengambiln
indeks th dan memeriksa apakah karakter itu"0"
. Saran bermain golf diterima. Cobalah online!Tidak melakukanolf
sumber
Bash,
3128 byteOutputnya tidak kosong (benar) atau kosong (salah). Uji di Ideone .
sumber
Julia,
2120 byteTerima kasih kepada @LuisMendo karena bermain golf 1 byte!
Cobalah online!
sumber
R,
6157 byteBerkat @plannapus untuk 4 byte.
Membuat vektor angka 0: n (untuk pengindeksan 0), membuat string, menarik nilai ke-n dari string (menyesuaikan untuk pengindeksan 0). Mengonversi ke numerik dan menguji apakah itu 0.
sumber
GolfScript, 12 byte
Penjelasan:
Cobalah online atau verifikasi semua test case!
sumber
C, 154 byte
fungsi yang menghitung nilainya adalah f (n, 0,0,0) di mana n adalah indeks input. dapat menghitung dari indeks yang berubah "kembali! c" di "kembali c" nilai array dalam indeks itu ... saya tidak mengerti bagaimana tetapi tampaknya berfungsi ok ....
sumber
Javascript (ES5):
6160 byteTidak Disatukan:
Tua:
Tua tidak serigala:
sumber
!s[n]
bukans[n]==0
?function(n){s="";while(s.length<n)s+=s.length;return !s[n]}
) mengembalikan a (31) = false.CoffeeScript, 56 byte
sumber
zsh, 31 byte
exit 0
benar di zshsumber
C #, 71 byte
Dan saya pikir itu pendek pada awalnya, tetapi kemudian saya harus menambahkan
n+=11
untuk mencegahnya melemparSystem.IndexOutOfRangeException
ketika angka di bawah 11 adalah inputsumber
Pyke, 7 byte
Coba di sini!
sumber