Tampilkan angka dari satu hingga seratus (dalam urutan yang meningkat), tetapi angka 2 seharusnya tidak muncul di mana pun dalam urutan. Jadi, misalnya, angka dua ( 2
) atau dua puluh tiga ( 23
) tidak boleh dalam urutan.
Berikut ini adalah contoh output, dengan baris baru memisahkan angka:
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
30
31
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
100
code-golf
sequence
kolmogorov-complexity
Monolica
sumber
sumber
[code-golf]
. Berikut adalah daftar untuk semua tag kriteria kemenangan yang tersedia untuk referensi di masa mendatang.Jawaban:
05AB1E , 6 byte
Cobalah online!
Penjelasan
sumber
Taksi ,
239923912370178317731706 byte-8 byte untuk menyadari bahwa, daripada meninggalkan penumpang tertentu di Sunny Side Park selamanya, lebih baik membuangnya dari Riverview Bridge. Ah, betapa indahnya kota ini.
-21 byte untuk mengeluarkan komentar yang dengan bodoh kutinggalkan.
-587 bytes hanya dengan mengubah seluruh cara saya melakukan ini (tampaknya cara yang lebih pendek adalah dengan hitung; integer-dividing [17, 27, 37, 47, ...] dengan 9 menghasilkan urutan, tetapi Anda harus melewati 20 sendiri.)
-17 byte untuk realisasi bahwa setiap string yang terbungkus tanda kutip tanpa spasi sama sekali tidak membutuhkan tanda kutip (terima kasih Jo King!).
-67 byte untuk realisasi bahwa linebreak adalah opsional.
Cobalah online!
Yang ini tidak memenangkan saya kompetisi golf kode apa pun dalam waktu dekat, tetapi saya memutuskan untuk mencoba Taksi esolang.
Taksi adalah esolang di mana semua pemrograman dilakukan dengan mengambil dan mengantar penumpang di berbagai halte di kota fiksi Townsburg. Tentu saja, taksi Anda kadang-kadang akan kehabisan bensin, jadi Anda juga perlu mengunjungi pompa bensin sesering mungkin, dan membayar menggunakan kredit yang Anda terima sebagai ongkos (dalam hal ini, saya hanya perlu berhenti untuk gas - di Go More - satu kali per loop iterasi!).
Saya menggunakan beberapa trik yang mengurangi sedikit filesize, seperti pengarahan ulang arah seperti
east 1st left, 2nd right
sepertie 1 l 2 r
, menghapus kata dithe
mana itu opsional, dan menggunakan rute paling rumit menuju semua tujuan saya (tidak harus jalur terpendek).Saya benci solusi yang lebih singkat ini lebih dari solusi yang saya buat. Solusi ini di sini adalah cara yang lebih umum untuk menyelesaikan tugas, yang bisa dimulai dan diakhiri di mana pun Anda inginkan. Ini dia, secara keseluruhan.
2245 byte (lebih umum)
Cobalah online!
Dan jika kecurangan mega diizinkan, yang ini jauh lebih pendek dari salah satu dari dua yang terakhir.
456 byte (benar-benar curang)
Cobalah online!
sumber
Python 2 , 39 byte
Cobalah online!
Menggunakan operasi aritmatika hanya untuk menghasilkan angka tanpa angka 2.
Nilai
k
mengikuti perkembangan aritmatika17, 27, 37, 47, ...
, yang ketika lantai-dibagi oleh 9 memberikan1,3,4,5,6,7,8,9,10,11,13,14,...
yang menghitung angka-angka tidak berakhir pada 2. Untuk melewati 20 hingga 29, output meningkat 10 melewati ambang tertentu.sumber
JavaScript (ES6), 43 byte
Mengembalikan urutan sebagai string yang dipisahkan koma.
Cobalah online!
Kenapa melakukannya dengan cara ini?
Kita dapat beralih dari1 hingga 100 dan menguji setiap angka dengan
/2/.test(n)
, yang merupakan pernyataan yang agak ringkas. Tetapi dalam skenario ini, kita harus menangani entri kosong dengan sesuatu seperti(/2/.test(n)?'':...)
, yang menambahkan beberapa byte lagi.Misalnya, ini akan bekerja selama 45 byte :
Atau ini akan bekerja selama 44 byte , jika koma utama dapat diterima:
Semua dalam semua (dan sampai terbukti sebaliknya), ternyata lebih pendek untuk langsung melompati semua nilain yang mengandung 2 .
Berkomentar
sumber
R , 19 byte
Cobalah online!
sumber
grep(2,1:100,inv=T)
untuk 19.v=F
juga karena jelas, saya berpikir sendiri, saya ingin nilai dan bukan indeks ... ya!^[^2]*$
yang, um, tidak lebih pendek.Python 2 , 44 byte
Cobalah online!
sumber
Perl 6 , 22 byte
Cobalah online!
Mungkin ada cara yang lebih baik untuk melakukan blok kode, tetapi saya tidak dapat menemukan kata keterangan regex untuk membalikkan pertandingan
sumber
PowerShell ,
2216 byteCobalah online!
-6 byte berkat mazzy
Buat rentang
1
ke100
, lalu tarik benda-benda itu di mana mereka melakukan-notmatch
angka2
. Menjalankan-notmatch
melawan array seperti ini bertindak seperti filter pada array. Setiap item dibiarkan di dalam pipa, dan output tersirat.sumber
1..100-notmatch2
Haskell ,
483331 byteTerima kasih @JonathanFrech selama lima belas byte disimpan, dan @xnor untuk dua lainnya! Saya melewatkan golf besar dan tidak sadar
main=print$
bisa dihilangkan.Cobalah online!
Mudah diperpanjang dengan mengubah
100
. Menentukan semua angka dan hanya menyimpannya tanpa'2'
.sumber
main=print$
tidak perlu. Sudahkah Anda menguji kode Anda? Saya tidak berpikir ituelem'2'
sintaks yang valid. Mengapamap
? Cukupfilter(not.elem '2'.show)[1..100]
lakukan pekerjaan.notElem
untuknot.elem
, tetapi bahkan lebih pendek adalahall(/='2')
.Utilitas Bash + GNU, 16
Cobalah online!
sumber
Japt , 7 byte
Cobalah online!
sumber
Java 10, 67 byte
Cobalah online.
Penjelasan:
sumber
Retina ,
1917 byteCobalah online! Sunting: Disimpan 2 byte berkat @ovs, meskipun baris terakhir sekarang menyertakan baris baru. Penjelasan:
Masukkan 100 karakter.
Ganti setiap karakter dengan jumlah karakter hingga dan termasuk karakter itu, ditambah baris baru.
Hapus semua entri yang mengandung a
2
.sumber
.
$.>`¶
berhasil untuk tahap kedua?L$
untuk menghindari baris baru, jadi saya tidak menyadari bahwa saya bisa beralih kembali, terima kasih.Stax , 6 byte
Jalankan dan debug itu
Dibongkar, tidak diserang, dan dikomentari, sepertinya ini.
Jalankan yang ini
sumber
Bahasa Wolfram (Mathematica) , 42 byte
Cobalah online!
Urutan aritmatika 1, 19/9, 29/9, 39/9, ... tumbuh pada tingkat yang tepat sehingga mengambil plafon melompati semua angka yang berakhiran 2. Kemudian kita menyingkirkan 20 hingga 29 dengan cara
Drop
ping nilai-nilai pada indeks 18 hingga 26.sumber
Print
diperlukan, tetapi siapa yang peduli?\[LeftCeiling]
dan\[RightCeiling]
benar - benar dihitung sebagai satu byte :)Ceiling
perintah yang sebenarnya .C (GCC) ,
6255 Bytes• 7 Bytes berkat Jonathan Frech
f(n){for(n=0;++n-101;n/10-2&&n%10-2&&printf("%d,",n));}
Loop dari 1 hingga 100 dan mencetak nomor hanya jika 2 tidak ada di satu atau puluhan tempat.
Cobalah online!
sumber
Powershell, 19 byte
Skrip ini menunjukkan nilai nol sebagai gantinya 'angka dengan 2 di dalam' dan sepenuhnya menyelesaikan tugas 'nomor 2 tidak boleh muncul di mana pun dalam urutan'.
Keluaran:
Powerhsell (output tidak mengandung nilai null), 24 byte
sumber
sh + coreutils, 16 karakter
Buat urutan dari 1 hingga 100 (inklusif) dan hapus semua baris yang memiliki '2' di dalamnya.
sumber
Z80Golf ,
4948 byteCobalah online!
Majelis:
Disimpan satu byte dengan
repeat_loop
lompatansumber
Python 3 ,
53 51 50 4946 byteCobalah online!
Bukan bahasa terkuat untuk tugas ini, tapi saya baru bermain golf.
Terima kasih kepada para komentator atas tips mereka!
sumber
if
.[print(n)for n in range(1,101)if"2"not in str(n)]
bekerja.n=17;exec("print((n>177)*10+n//9);n+=10;"*81)
'2'in str(n)or print(n)
lebih pendek dari penjaga pemahaman.Tcl , 44 byte
Cobalah online!
Tcl , 47 byte
Cobalah online!
Tcl , 50 byte
Cobalah online!
sumber
time {if [string f 2 [incr i]]==-1 {puts $i}} 100
- Gagal outgolf!regexp
:![regexp 2 [incr i]]
untuk -3 byteKotlin , 32 byte
Cobalah online!
sumber
Bash , 31 byte
Cobalah online!
Berkat Digital Trauma untuk loop pendek.
sumber
echo $i
bukan printf? Atau bahkan lebih baikprintf %d\\n {1..100}|grep -v 2
?echo {1..100}|tr ' ' \\n|grep -v 2
sed /2/d
bukangrep -v 2
.ORK , 1092 byte
Cobalah online!
O bjects R K ool. Output adalah daftar angka yang dibatasi ruang.
Ini menerjemahkan (kurang-lebih) ke pseudocode berikut:
Seperti yang dapat Anda lihat, semuanya dilakukan menggunakan objek, termasuk matematika dasar dan fungsi IO (melalui built-in matematika dan kelas juru tulis). Hanya seluruh fungsi yang dapat diulang, yang menjelaskan perlunya suatu objek dengan dua fungsi untuk melakukan pekerjaan.
sumber
MathGolf ,
76 byteCobalah online!
Penjelasan
sumber
C (dentang) , 56 byte
Cobalah online!
sumber
PHP 7.1, 40 byte
mencetak angka yang dipisahkan oleh garis bawah. Jalankan dengan
-nr
atau coba online .sumber
preg_filter()
berbasis menarik. (Saya tidak pernah menggunakan fungsi yang 🤫.) Itu salah satu akan lebih pendek denganpreg_grep()
:<?=join(_,preg_grep("/2/",range(1,100),1));
.Merah , 44 byte
Cobalah online!
Penggunaan
unless
bukanif not
, karena mengapa tidak? :)sumber
brainfuck , 176 byte
Cobalah online!
Lebih pendek pasti mungkin. Ini menghasilkan angka
1,3,4,5,6,7,8,9
dan0,1,3,4,5,6,7,8,9
. Pertama output setiap nomor dalam daftar pertama, lalu output setiap kombinasi dari daftar pertama dan kedua, kemudian akhirnya mencetak saja100
.Penjelasan:
sumber
SimpleTemplate , 51 byte
Ini adalah tantangan yang menyenangkan! Dan itu adalah tantangan di mana bahasa saya dapat melakukannya dengan baik.
Siklus melalui semua nilai dari 1 hingga 100, menghasilkan yang tidak memiliki 2, dipisahkan oleh baris baru.
Anda dapat mencobanya di http://sandbox.onlinephpfunctions.com/code/2c97a2b6954c29844f1079938da771d51e2e0d99
Tidak Disatukan:
Yang
{@/}
digunakan untuk menutup{@for ...}
dan{@if ...}
, tetapi adalah opsional.Ketika mengkompilasi ke PHP, itu menambahkan penutupan yang dibutuhkan.
Jika Anda penasaran, kode golf menghasilkan kode PHP ini:
Di mana
$FN['array_flat']
didefinisikan di luar kode ini.sumber