Un nombre palindromique (au cas où vous ne le sauriez pas) est un nombre qui se lit de la même manière en arrière et en avant (exemple, 11). Les 15 premiers numéros non palindromiques sont: 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26
. Ceci est A029742 . J'ai constamment besoin de ces chiffres, mais mon bloc-notes est très petit, donc votre code doit être aussi court que possible.
Règles
- Chaque soumission doit être un programme ou une fonction complète (par exemple, en C, vous ne pouvez pas simplement définir une fonction sans en-têtes, mais vous pouvez définir une fonction AVEC les en-têtes nécessaires).
- Si c'est possible, fournissez un lien vers un site où votre programme peut être testé.
- Votre programme ne doit rien écrire
STDERR
.
- Vous pouvez prendre la saisie comme argument ou de
STDIN
(ou l'alternative la plus proche dans votre langue).
- Les programmes sont notés en octets . Le jeu de caractères habituel est UTF-8, si vous en utilisez un autre, veuillez le préciser.
- Les failles standard sont interdites.
Cas de test
1
==> 10
-----
5
==> 15
-----
12
==> 23
Notation
C'est le code-golf , donc le moins d'octets gagne.
Soumissions
Pour vous assurer que votre réponse s'affiche, veuillez commencer votre réponse avec un titre, en utilisant le modèle Markdown suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre, en les barrant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs nombres dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou que vous souhaitez répertorier les pénalités de drapeau d'interprète séparément), assurez-vous que le score réel est le dernier numéro de l'en-tête:
# Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de classement:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Classement
Voici un extrait de pile pour générer à la fois un classement régulier et un aperçu des gagnants par langue.
/* 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
serait donc le 4ème nombre?Réponses:
Pyth, 7 octets
Suite de tests
Explication:
la source
Haskell, 38 octets
Utilise un index basé sur 0.
([x|x<-[1..],(/=)<*>reverse$show x]!!) 11
->23
.Le test de maintien ou non d'un nombre se
(/=)<*>reverse$show x
traduit par(show x) /= (reverse (show x))
, c'est- à -dire vérifier si la représentation sous forme de chaîne du nombre n'est pas égale à l'inverse de la représentation sous forme de chaîne.la source
Brachylog ,
1411 octets-3 octets réservoirs à fataliser
Explication
Essayez-le en ligne!
la source
;İ{ℕ≜.↔¬}ᶠ⁽t
est de 2 octets plus court.iterate
est plus courte d'un octet:;0{<≜.↔¬}ⁱ⁽
Gelée, 9 octets
1 octets grâce à @ Sp3000 .
Essayez-le en ligne!
Suite de tests.
Explication
la source
123Ṛ
³
. Si vous placez l'entrée sur STDIN, vous pouvez également supprimer le0
. (Dans la dernière version de Jelly,ṚḌ_ø#Ṫ
ça marche aussi, mais c'est plus récent que ce défi.)05AB1E , 8 octets
Code:
Utilise l' encodage CP-1252 . Essayez-le en ligne! .
la source
Â
? PS pour toute autre personne lisant ceci: peut maintenant être de 5 octetsµNÂʽ
.½
est également implicite.½
être implicite, même si je l' ai mentionné dans un conseil que je me suis écrit ..>. <Thought la¼
(augmentation counter_variable par 1) était implicite pour la boucle whileµ
pour un moment, mais il est en effet le½
( si le haut de la pile est 1: augmentez counter_variable de 1) à la place ..Clojure, 62 octets
0 indexé. Générez une plage paresseusement infinie de nombres non palindromiques en utilisant la compréhension de la liste et prenez
i
celle-ci. Voir en ligne: https://ideone.com/54wXI3la source
PowerShell v2 +, 65 octets
Boucle à travers les nombres de
0
(valeur implicite pour non initialisé$i
) jusqu'à ce que nous trouvions l'entrée de$args[0]
nombreuses correspondances, puis génère la dernière. Notez que nous n'initialisons pas la boucle, c'est donc$j=0
implicite.Chaque itération, nous pré-incrémentons
$i
et vérifions si elle n'est pas égale à$i
inversée. Si c'est le cas, cela signifie que nous avons trouvé un non-palindrome, alors incrémentez$j
. La boucle se poursuit ensuite autant de fois que nécessaire.Exemples
la source
Python 2, 60 octets
Fonction à un index qui prend en entrée l'
n
argument via et retourne len
e nombre non palindromique.Comment ça marche
Il s'agit d'une recherche récursive exhaustive, qui teste consécutivement des nombres entiers
i
dans la plage[1,∞)
jusqu'à ce quen
des nombres non palindromiques aient été trouvés; puisquei
est pré-incrémenté,i-1
est ensuite renvoyé. Tester si un nombre est palindromique est effectué en convertissant en chaîne, en inversant, puis en vérifiant si les chaînes d'origine et inversées sont égales.Le code est logiquement équivalent à:
qui lui-même est essentiellement:
Essayez-le sur Ideone
la source
Clojure, 62 octets
Une approche assez différente de l'autre réponse, mais de longueur égale.
la source
R ,
1331179376 octets-16 octets grâce à JayCe. -41 octets grâce à Giuseppe.
Essayez-le en ligne!
la source
F
, etc.: TIO . Aussi, pourquoi restreignez-vous la boucle à(0:97)+10
?all(D==rev(D))
oùD
est un vecteur de chiffres. Je pense qu'unewhile
boucle sera plus courte, et comme @JayCe le demande, pourquoi ne vérifiez-vous que les nombres entre 10 et 107?while
boucle tout en économisant des octets.Forth (gforth) ,
10399 octetsEssayez-le en ligne!
Explication
Boucle n fois, chaque itération trouve le prochain nombre non palindromique en incrémentant un compteur de 1 jusqu'à ce que le nombre ne soit pas égal à lui-même inversé
Code non golfé
Normalement, je ne "dégonfle" pas le code, mais comme ce code est un peu compliqué, je me suis dit que cela aiderait
Explication du code
la source
Perl 6 , 29 octets
(utilise un index basé sur 0)
Usage:
la source
En fait, 17 octets
Essayez-le en ligne!
Les valeurs sont indexées 1. Cela pourrait être facilement changé en 0 indexé en remplaçant le premier
R
parr
. MaisR
c'est ce que j'ai initialement tapé, c'est donc ce que je veux dire.Les nombres non palindromiques satisfont
a(n) ≈ n + 10
, ainsi2n+9
est une limite supérieure suffisante.Explication:
la source
JavaScript (ES6), 54 octets
Utilise l'indexation basée sur 1. Fonctionne uniquement jusqu'au numéro 7624.
Usage
JavaScript (ES6), 59 octets
N'utilise pas de récursivité et peut donc gérer des entrées beaucoup plus importantes.
Usage
la source
Javascript (à l'aide d'une bibliothèque externe) (97 octets)
Lien vers la bibliothèque: https://github.com/mvegh1/Enumerable
Explication du code: la bibliothèque a une méthode statique appelée séquence, où le premier paramètre définit le nombre d'éléments que la séquence garantira de créer, et le deuxième paramètre est un prédicat acceptant la valeur d'itération actuelle, "i". Le prédicat convertit l'entier en une chaîne, qui est convertie en un tableau de caractères en appelant _.From. Le tableau de caractères est comparé à l'inversion du tableau de caractères, et s'ils ne sont pas égaux, le tableau de caractères est joint à nouveau dans une chaîne et renvoyé. Sinon, rien n'est retourné (ie le résultat n'est pas défini, ce que la bibliothèque ignorera toujours). Enfin, le dernier élément de la séquence, c'est-à-dire le Nième élément est retourné
la source
C, 84 octets
La fonction
f(n)
prend un entiern
et retournen-th
un nombre non palindromique (basé sur 1).Testez-le sur Ideone!
C'est un code assez trivial, donc il y a probablement de la place pour des améliorations.
la source
n=n?g(n/10,r*10+n%10):r;}s;f(n){for(s=9;n--;g(++s,0)-s||s++);n=s;
place dereturn n?g(n/10,r*10+n%10):r;}s;f(n){for(s=9;n--;g(++s,0)==s&&s++);return s;
Rubis, 54 octets
Cette fonction est indexée 1 et est partiellement basée sur la réponse Javascript de Dom Hastings . Je pense qu'il y a un moyen de mieux jouer au golf, surtout avec cette dernière condition ternaire. De plus, cette fonction retourne actuellement une chaîne, qui devra peut-être être modifiée ultérieurement. Toutes les suggestions de golf sont les bienvenues.
Non golfé:
la source
C ++ (GCC), 148 octets
Il est basé sur 1 et l'algorithme est vraiment naïf
la source
#import
est une extension de compilation de gcc. Il est obsolète, mais cela n'a pas vraiment d'importance iciAPL NARS 35 caractères
c'est la fonction v; "⍎⌽⍕" r traslate nombre r dans la chaîne, inversez cette chaîne, traslate de chaîne en nombre. Fonctions de test et d'aide:
la source
Husk , 6 octets
Ouais pour
↔
:)Essayez-le en ligne!
Explication
la source
Perl 5 , 33 + 1 (
-p
) = 34 octetsEssayez-le en ligne!
la source
C # 7, 89 octets
1 indexé Try on Repl.It
Je ne pense pas que cela utilise des fonctionnalités de langage de c # 7, mais je l'ai mis car c'est ce que j'ai testé
la source
Japt ,
141211109 octets1 indexé
Essayez-le
la source
Java 8,
1179594 octets0 indexé
Explication:
Essayez-le ici.
la source
new StringBuffer(int)
n'est pas égal ànew StringBuffer(String)
, niString.equals(StringBuffer)
au lieu deString.equals(String)
.. Ceci est cependant une vieille réponse, donc je peux l'utiliser(++r+"").contains(new StringBuffer(r+"").reverse())
pour économiser 1 octet.TCC, 11 octets
Essayez-le en ligne!
la source
tcc.lua
fichier avec horodatage 16-07-26 12:46 UTC, qui n'avait pas la?>
commande. Si votre réponse nécessite une version de la langue postérieure au défi, vous devez la marquer comme non concurrente dans l'en-tête. Je supprimerai mon downvote quand vous le ferez.