Angka palindrom (jika Anda tidak tahu) adalah angka yang membaca mundur dan maju yang sama (misalnya, 11). Nomor 15 non-palindromic pertama adalah: 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26
. Ini A029742 . Saya selalu membutuhkan angka-angka ini, tetapi catatan tempel saya sangat kecil, jadi kode Anda harus sesingkat mungkin.
Aturan
- Setiap pengiriman harus berupa program atau fungsi lengkap (mis. Dalam C, Anda tidak bisa hanya mendefinisikan suatu fungsi tanpa header, tetapi Anda dapat mendefinisikan suatu fungsi DENGAN header yang diperlukan).
- Jika memungkinkan, berikan tautan ke situs tempat program Anda dapat diuji.
- Program Anda tidak boleh menulis apa pun
STDERR
.
- Anda dapat mengambil input sebagai argumen atau dari
STDIN
(atau alternatif terdekat dalam bahasa Anda).
- Program diberi skor berdasarkan byte . Set karakter yang biasa adalah UTF-8, jika Anda menggunakan yang lain, silakan tentukan.
- Celah standar dilarang.
Uji Kasus
1
==> 10
-----
5
==> 15
-----
12
==> 23
Mencetak gol
Ini adalah kode-golf , jadi paling tidak byte menang.
Pengajuan
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
/* Configuration */
var QUESTION_ID = 79251; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 53406; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
15
akan menjadi angka 4?Jawaban:
Pyth, 7 byte
Suite uji
Penjelasan:
sumber
Haskell, 38 byte
Menggunakan indeks berbasis 0.
([x|x<-[1..],(/=)<*>reverse$show x]!!) 11
->23
.Tes apakah akan menyimpan nomor yang
(/=)<*>reverse$show x
diterjemahkan(show x) /= (reverse (show x))
, yaitu memeriksa apakah representasi string dari angka tidak sama dengan kebalikan dari representasi string.sumber
Brachylog ,
1411 byte-3 Bytes tank untuk di Fatalkan
Penjelasan
Cobalah online!
sumber
;İ{ℕ≜.↔¬}ᶠ⁽t
lebih pendek 2 byte.iterate
1 byte lebih pendek:;0{<≜.↔¬}ⁱ⁽
Jelly, 9 byte
1 byte terima kasih kepada @ Sp3000 .
Cobalah online!
Suite uji.
Penjelasan
sumber
123Ṛ
³
. Jika Anda menempatkan input pada STDIN, Anda dapat menjatuhkannya0
juga. (Dalam versi terbaru Jelly,ṚḌ_ø#Ṫ
bekerja juga, tetapi ini lebih baru daripada tantangan ini.)05AB1E , 8 byte
Kode:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
Â
? PS untuk orang lain yang membaca ini: Sekarang bisa 5 byteµNÂʽ
.½
juga implisit.½
menjadi implisit, meskipun saya sebutkan di tip saya tulis sendiri ..>. <Pemikiran yang¼
(peningkatan counter_variable oleh 1) adalah implisit untuk sementara loopµ
untuk sesaat, tapi itu memang½
( jika puncak tumpukan adalah 1: tingkatkan counter_variable sebesar 1) sebagai gantinya ..Clojure, 62 byte
Diindeks 0. Hasilkan rentang angka-angka non-palindromik malas yang tak terbatas menggunakan pemahaman daftar dan ambil nomor
i
satu. Lihat online: https://ideone.com/54wXI3sumber
PowerShell v2 +, 65 byte
Putaran melalui angka dari
0
(nilai implisit untuk tidak diinisialisasi$i
) sampai kami menemukan input yang$args[0]
cocok, kemudian mengeluarkan yang terakhir. Perhatikan bahwa kami tidak menginisialisasi loop, jadi$j=0
ini implisit.Setiap iterasi, kami melakukan pra-kenaikan
$i
, dan memeriksa apakah itu tidak sama dengan$i
terbalik. Jika demikian, itu berarti kami telah menemukan non-palindrome, jadi peningkatan$j
. Lingkaran kemudian berlanjut sebanyak yang diperlukan.Contohnya
sumber
Python 2, 60 byte
Fungsi satu-diindeks yang mengambil input
n
melalui argumen dan mengembalikan nomorn
non-palindromik.Bagaimana itu bekerja
Ini adalah pencarian rekursif lengkap, yang secara berturut-turut menguji bilangan bulat
i
dalam kisaran[1,∞)
sampain
angka non-palindrom ditemukan; karenai
pra-incremented,i-1
kemudian dikembalikan. Pengujian apakah suatu bilangan adalah palindromik dilakukan dengan mengonversi suatu string, membalikkan, dan kemudian memeriksa apakah string asli dan yang dibalik sama.Kode ini secara logis setara dengan:
yang pada dasarnya adalah:
Cobalah di Ideone
sumber
Clojure, 62 byte
Pendekatan yang sangat berbeda dari jawaban yang lain, tetapi panjangnya sama.
sumber
R ,
1331179376 byte-16 byte terima kasih kepada JayCe. -41 byte terima kasih kepada Giuseppe.
Cobalah online!
sumber
F
, dll .: TIO . Juga, mengapa Anda membatasi loop(0:97)+10
?all(D==rev(D))
manaD
adalah vektor digit. Saya percaya sebuahwhile
loop akan lebih pendek, dan ketika @JayCe bertanya, mengapa Anda hanya memeriksa angka antara 10 dan 107?while
loop sementara pada saat yang sama menghemat byte.Keempat (gforth) ,
10399 byteCobalah online!
Penjelasan
Loop n kali, setiap iterasi menemukan nomor non-palindromik berikutnya dengan menambah penghitung dengan 1 sampai angka tidak sama dengan dirinya sendiri terbalik
Kode Tidak Terkunci
Biasanya saya tidak akan "ungolf" kode, tetapi karena kode ini agak berantakan saya pikir itu akan membantu
Penjelasan Kode
sumber
Perl 6 , 29 byte
(menggunakan indeks berbasis 0)
Pemakaian:
sumber
Sebenarnya, 17 byte
Cobalah online!
Nilai diindeks 1. Ini dapat dengan mudah diubah menjadi 0-diindeks dengan mengganti yang pertama
R
denganr
. Tapi,R
itulah yang awalnya saya ketik, jadi itulah yang saya lakukan.Angka-angka nonpalindromik memuaskan
a(n) ≈ n + 10
, demikian2n+9
juga batas atas yang cukup.Penjelasan:
sumber
JavaScript (ES6), 54 byte
Menggunakan pengindeksan berbasis 1. Hanya berfungsi hingga nomor 7624.
Pemakaian
JavaScript (ES6), 59 byte
Tidak menggunakan rekursi sehingga bisa menangani input yang jauh lebih besar.
Pemakaian
sumber
Javascript (menggunakan perpustakaan eksternal) (97 byte)
Tautan ke lib: https://github.com/mvegh1/Enumerable
Penjelasan kode: Pustaka memiliki metode statis yang disebut Sequence, di mana param pertama mendefinisikan berapa banyak elemen yang akan dijamin urutannya, dan parameter ke-2 adalah predikat yang menerima nilai iterasi saat ini, "i". Predikat mengubah integer menjadi string, yang akan dikonversi ke array char dengan memanggil _.From. Array char dibandingkan dengan pembalikan array char, dan jika mereka tidak sama array char bergabung kembali ke dalam string dan dikembalikan. Kalau tidak, tidak ada yang dikembalikan (yaitu hasilnya tidak ditentukan, yang akan selalu diabaikan oleh perpustakaan). Akhirnya, elemen terakhir dari urutan, yaitu elemen N dikembalikan
sumber
C, 84 byte
Fungsi
f(n)
mengambil integern
dan mengembalikann-th
nomor non-palindrom (berbasis 1).Uji di Ideone!
Ini kode yang cukup sepele, sehingga mungkin ada ruang untuk perbaikan.
sumber
n=n?g(n/10,r*10+n%10):r;}s;f(n){for(s=9;n--;g(++s,0)-s||s++);n=s;
alih-alihreturn n?g(n/10,r*10+n%10):r;}s;f(n){for(s=9;n--;g(++s,0)==s&&s++);return s;
Ruby, 54 byte
Fungsi ini 1-diindeks dan sebagian didasarkan pada jawaban Javascript Dom Hastings . Saya pikir ada cara untuk bermain golf ini lebih baik, terutama dengan kondisi ternary terakhir itu. Selain itu, fungsi ini saat ini mengembalikan string, yang mungkin perlu diedit nanti. Saran bermain golf dipersilakan.
Tidak Disatukan:
sumber
C ++ (GCC), 148 byte
Ini berbasis 1 dan algoritma ini benar-benar naif
sumber
#import
adalah ekstensi kompilator gcc Itu sudah usang, tetapi ini tidak terlalu penting di siniAPL NARS 35 karakter
itu adalah fungsi v; "⍎⌽⍕" r angka traslate r dalam string, balikkan string itu, traslate dari string ke angka. Fungsi tes dan bantuan:
sumber
Sekam , 6 byte
Yay untuk
↔
:)Cobalah online!
Penjelasan
sumber
Perl 5 , 33 + 1 (
-p
) = 34 byteCobalah online!
sumber
C # 7, 89 byte
1 diindeks Coba pada Repl.It
Saya tidak berpikir ini menggunakan fitur bahasa apa pun dari c # 7, tapi saya meletakkannya di sana karena itulah yang saya uji
sumber
Japt ,
141211109 bytes1-diindeks
Cobalah
sumber
Java 8,
1179594 byteDiindeks 0
Penjelasan:
Coba di sini.
sumber
new StringBuffer(int)
tidak sama dengannew StringBuffer(String)
, jugaString.equals(StringBuffer)
bukanString.equals(String)
.. Ini adalah jawaban lama, jadi saya bisa gunakan(++r+"").contains(new StringBuffer(r+"").reverse())
untuk menyimpan 1 byte.TCC, 11 byte
Cobalah online!
sumber
tcc.lua
file dengan timestamp 16-07-26 12:46 UTC, yang tidak memiliki?>
perintah. Jika jawaban Anda memerlukan versi bahasa yang mengunggah tantangan, Anda harus menandainya sebagai tidak bersaing di header. Saya akan menghapus downvote saya ketika Anda melakukannya.