Dengan bilangan bulat n-negatif, sebutkan semua angka palindromik (dalam desimal) antara 0 dan n (rentang inklusif). Angka palindromik tetap sama ketika digitnya dibalik.
Angka palindromik pertama (dalam basis 10) diberikan di sini :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 333, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 444, 454, 464, 474, 484, 494, 505, 515, ...
Ini adalah kode golf dengan hadiah mencapai karakter paling sedikit. Angka-angka palindrom harus merupakan keluaran satu per baris ke stdout. Program harus membaca n dari commandline atau stdin.
n
bagian dari rentang termasuk?Jawaban:
Golfscript, 15 karakter
sumber
Perl 5.10, 29 (atau 39) karakter
Membutuhkan
say
fitur yang diaktifkan. 29 karakter jika Anda menganggap itu gratis, sebaliknya 39 ditambahkanuse 5.010;
. Argumen tentang STDIN.Perl, 35 karakter
menggunakan konvensi perlgolf lama yang
#!perl
tidak dihitung tetapi ada flag yang mengikutinya.Perl, 36 karakter
Jika tidak ada yang memenuhi syarat.
sumber
$/
adalah pemisah rekaman input, yang default ke baris baru. Hanya sedikit lebih pendek dari literal"\n"
.map{say if$_==reverse}0..<>
-E
sebagai pengganti-e
, Anda dapatkansay
secara gratis.Befunge
320313303 karakter(termasuk baris baru dan spasi yang signifikan)
Aku ingin tahu apakah aku bisa membuat ini lebih kecil dengan mengubah rute jalan ...
Sunting: redid bagian atas untuk menghindari garis tambahan.
sumber
Perl 5.10 - 27 karakter
map{say if$_==reverse}0..<>
Membaca argumen dari stdin.
sumber
Ruby 1.9, 39 karakter
Input (tidak boleh diakhiri dengan baris baru) via stdin. Doa contoh:
40 karakter untuk versi yang menggunakan arg baris perintah:
sumber
p
alih-alihputs
.irb(main):023:0> p (?0..gets).select{|i|i==i.reverse} 1 ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "22", "33", "44", "55", "66", "77", "88", " 99"] => ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "22", "33", "44", "55", "66", "77", "88" , "99"]
Kode di bawah ini berfungsi untuk sayap ('0'..gets[0..-2]).select{|i|i==i.reverse}
Bisakah Anda menjelaskan kode Anda.p
danputs
tidak setara, sebenarnya menggunakanp
istirahat output, seperti menempatkan menulis setiap elemen pada baris baru, jika dipanggil dengan array , sedangkanp
hanya memanggil.to_s
.J , 20 karakter
sumber
,"0
.,.
bekerjaPython,
5751 karakterPemakaian:
sumber
for i in range(input()):if`i`==`i`[::-1]:print i
print
dan hanya melakukanif`i`==`i`[::-1]:i
(saya katakan ini karena solusi Scala tergantung pada ini).Perl> 5.10: 25 karakter
sumber
APL (
2517)sumber
Javascript
122108107 karakter ...Saya yakin ini bisa bermain golf lebih banyak - saya baru dalam hal ini!
atau
sumber
var
ini tidak dibutuhkan, Anda bisa menjadikannya global. Jugaprompt()
tidak sepenuhnya membutuhkan parameter.prompt()
menyelamatkan satu titik koma:n=prompt(o=[]);
.var i=0
yang dapatvar
dihapus di Internetfor
.i++<n
membandingkani<n
sebelum menambahkan 1 kei
. Dengan demikian, semua berjalan kei=n
. Jika Anda ingin berhentii=n-1
, Anda akan menggunakannya++i<n
.alert(o.join(" "))
harusalert(o.join("\n"))
sesuai dengan spesifikasi. Tambahkan 1 ke jumlah karakter Anda ketika Anda memperbaikinya.Perl - 43 karakter
Ini adalah upaya pertama saya di kode golf, jadi saya cukup yakin seorang pro Perl bisa menurunkannya.
sumber
Haskell 66 karakter
sumber
PHP
6458Mengubah $ _GET ['n'] menjadi $ argv [1] untuk input baris perintah.
sumber
Scala 59
sumber
readInt
dengan nomor konkret, online.PHP,
595553 karakterPemakaian
Sunting: terima kasih Thomas
sumber
echo "$i\n"
untuk mendapatkannyaecho"$i\n"
. Itu akan menghemat beberapa karakter. Juga, jika Anda ingin nakal, Anda dapat mengubah\n
untuk `` dan menyimpan char.C, 98 karakter
sumber
k (23 karakter)
sumber
Mathematica 61
sumber
Befunge, 97 (ukuran kotak 37x4 = 148)
Dapatkan jawaban Befunge yang lebih baik untuk pertanyaan ini. Ini Befunge-93 secara khusus; Saya mungkin bisa membuatnya lebih ringkas dengan Befunge-98. Saya akan memasukkannya dalam sunting mendatang.
Karena Anda tidak dapat beroperasi pada string di Befunge, yang terbaik yang bisa saya lakukan adalah menghitung angka-kebalikan dari setiap nomor (yang saya terkejut saya bisa kelola tanpa
p
dang
) dan membandingkannya dengan nomor asli. Digit-reverse mengambil sebagian besar kode (pada dasarnya seluruh baris ketiga dan keempat).Perhatikan bahwa program, seperti yang ada sekarang, mencetak angka mundur dari input ke 0. Jika ini masalah besar, beri tahu saya. (Tantangannya hanya mengatakan untuk menyebutkan mereka, tidak secara khusus dalam urutan meningkat.)
sumber
\n
sendiri, jadi panjangnya 94 byte. Saya tidak berpikir "ukuran grid" Anda memiliki relevansi khusus.05AB1E , 5 byte (tidak bersaing)
Bahasa ini mengungguli tantangan dan karenanya tidak bersaing . Kode:
Penjelasan:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
LʒÂQ
adalah 4, masih belum bersaing ..Brachylog (2), pertanyaan tanggal bahasa:
Dengan format I / O yang dinyatakan dalam pertanyaan, 8 byte
Cobalah online!
Dengan aturan I / O PPCG modern, 4 byte
Cobalah online!
Ini adalah fungsi yang menghasilkan semua output, bukan program lengkap seperti contoh sebelumnya, dan karenanya tidak sesuai dengan spesifikasi seperti yang tertulis, tapi saya pikir saya akan menunjukkan bagaimana program akan terlihat seperti jika pertanyaan telah ditulis dengan standar I / O modern (yang memungkinkan penggunaan fungsi, dan output melalui generator).
Penjelasan
Untuk versi program lengkap, kami membuat variabel sementara
A
untuk menahan output, secara eksplisit melabelnya (ini dilakukan secara implisit untuk predikat utama program), dan menggunakanẉ⊥
teknik terkenal untuk mengeluarkan elemen generator ke output standar.sumber
Python
sumber
Groovy, 83
sumber
Q (34 karakter)
Lewati n daripada n +1 sebagai argumen untuk solusi Q ini.
sumber
Q, 32
sumber
Q (33)
Mungkin cara yang lebih rapi untuk melakukan ini tetapi bagaimanapun, sampel penggunaan (Anda memasukkan n +1 untuk sampai ke n):
Saran oleh tmartin, turun ke 29:
Penggunaan yang sama.
sumber
Python, 106 karakter
pemakaian:
sumber
C # (
217214191 karakter)Versi golf:
Dapat dibaca:
Ini mencetak palindrom dengan urutan menurun menggunakan operator n -> 0. (seperti n pergi ke 0).
* Versi yang sudah diedit menggantikan do ... while with while, menyimpan 3 karakter, tetapi sekarang Anda harus memasukkan dengan n +1.
* diedit: menemukan cara yang lebih baik untuk membalikkan string tanpa mengubah ke array:
Dapat dibaca:
sumber
PHP 53
Bisakah 53 lebih rendah? Empat opsi berbeda:
Jika Anda ingin ...
PHP 47
Anda harus mengabaikan teks kesalahan. Namun, nomor palindrome masih ditampilkan ke baris perintah.
sumber
Pyth, 11
Contoh:
sumber