Le programme doit prendre en entrée le nombre, le début de la plage et la fin de la plage et afficher le nombre d'entiers que le nombre apparaît entre le début et la fin de la plage, inclus . Les programmes et les fonctions sont autorisés.
Exemples d'entrées
Par exemple:
//Input example 1
3,1,100
//Input example 2
3
1
100
//Input example 3
3 1 100
//Input example 4
a(3, 1, 100);
Les quatre exemples de saisie ci-dessus sont valides et signifient tous que 3
c'est le nombre en question, 1
le début de la plage et 100
la fin de la plage.
Et puis le programme devrait sortir combien de fois 3
apparaît dans la plage de 1
à 100
inclusif . 3
apparaît dans les entiers 3
, 13
, 23
, 30
, 31
, 32
, 33
, ..., 93
à un total de 19 fois. Ainsi, le programme doit sortir 19
en sortie car c'est le nombre de fois qui 3
apparaît dans la plage de 1
à 100
.
Règles
- Les programmes et les fonctions sont autorisés.
- Tous les numéros seront entiers, ce qui signifie qu'il n'y aura pas y avoir de
float
s ou double
s.
- Remarque: le nombre recherché sera toujours dans la plage
0≤x≤127
. Il n'y aura aucun cas où il sera en dehors de cette 0≤x≤127
plage.
- Comme dans le premier exemple, avec le cas comme
33
, le nombre 3
sera compté comme n'apparaissant qu'une fois , pas deux.
- Les valeurs de début et de fin de la plage seront comprises entre
-65536
et 65535
inclusives.
- La valeur du début de la plage ne sera jamais supérieure ou égale à la fin de la plage.
start < end
- La gamme est également incluse. Par exemple, si l'entrée était
8 8 10
, la plage serait 8≤x≤10
et donc la sortie sera 1.
- La saisie peut être effectuée de l'une des manières indiquées dans les exemples. L'entrée peut être prise sous la forme d'une chaîne ou d'un nombre, comme vous le souhaitez.
Cas de test
3 1 100
19
3 3 93
19
12,-200,200
24 //This is because 12 appears in -129, -128, ..., -112, -12, 12, 112, 120, 121, 122, ...
123,1,3
0 //This is because all of 123's digits have to appear in the same order
3 33 34
2 //Because 3 appears in 2 numbers: 33 and 34
a(0,-1,1);
1
$ java NotVerbose 127 -12 27
0
Snack Snippet
Pour vous assurer que votre réponse apparaît, 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 rayant. 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
/* Configuration */
var QUESTION_ID = 98470; // 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 = 41805; // 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>
{a,b,c->}
Aww ... dangit, j'ai perdu avant de recommencer.Ÿʒ³å}g
Bash, 20 octets
la réponse évidente
exemple
la source
Perl, 20 octets
Enregistré 2 octets en utilisant
grep
comme dans la réponse de @ ardnew .Bytecount comprend 18 octets de code et d'
-ap
indicateurs.Donnez les 3 nombres sur trois lignes distinctes:
la source
Python 2,
4743 octetsRelativement simple, utilisant la
repr
forme courte de Python 2 .Sortie:
la source
-~a
placea+1
?JavaScript (ES6),
4645 octets(Ma meilleure version non récursive était de 61 octets.) Edit: sauvé 1 octet grâce à @ edc65.
la source
!!match
au lieu deincludes
.Gelée , 7 octets
TryItOnline!
Entrée: Début, Fin, ToFind
Comment?
La conversion par défaut d'un entier en un itérable pour le contrôle d'existence de la sous-liste est convertie en une liste décimale (pas une liste de caractères), donc les nombres négatifs ont une valeur négative de tête (par exemple
-122
->[-1,2,2]
qui ne trouvera pas de sous-liste[1,2]
), donc en prenant la la valeur absolue semble d'abord être la solution la plus golfique.la source
PowerShell v2 +,
646256 octets-6 octets grâce à mazzy
Saisie via des arguments de ligne de commande du numéro de formulaire borne inférieure borne supérieure . Un peu maladroit sur la notation, à cause des points-virgules à l'intérieur des
for
erreurs d'analyse qui se produisent s'il n'est pas entouré$(...)
pour créer un bloc de script. Nous bouclons essentiellement vers le haut$a
jusqu'à ce que nous frappions$b
, en utilisantWhere-Object
(le|?{...}
) pour extraire les nombres-match
contre lesquels regex$c
. C'est encapsulé entre parenthèses, nous prenons.count
celui - ci, et cela reste sur le pipeline et la sortie est implicite.Si, toutefois, nous garantissons que la plage ne dépassera pas 50 000 éléments, nous pouvons ignorer la boucle et utiliser
..
directement l' opérateur de plage , pour4543 octets . Comme cela ne fait pas partie des spécifications du défi, cela n'est pas valide. Bummer.la source
param($c,$a,$b)$(for(;$a-le$b){1|?{$a++-match$c}}).count
param($c,$a,$b)($a..$b|?{$_-match$c}).count
travaux avec la gamme -65536..65535 lePowershell 5.1
Vim,
46, 41 octetsL'entrée est dans ce format:
la source
Haskell, 65 octets
Les
import
ruines du score. Exemple d'utilisation:((-200)#200)12
->24
.la source
Java 7 85 octets
la source
Swift 3,
9693 octetsModifier 1:
Enregistré 3 octets en utilisant des paramètres abrégés
la source
Scala, 50 octets
prend la première entrée au curry; appelez-le comme ceci:
f("12")(-200,200)
Explantion:
la source
R, 32 octets
Assez simple:
la source
a=scan();sum(grepl(a,a[2]:a[3]))
ou les arguments d'une fonction:,function(a,b,c)sum(grepl(a,b:c))
tous deux équivalents dans ce cas.C #, 71 octets
Battre ma réponse Java grâce à lambdas
la source
(n,s,e)=>s>e?0:((""+s).Contains(n+"")?1:0)+f(n,++s,e);
est bien plus courteRuby 44 octets
Cas de test:
la source
PHP, 62 octets
Approche assez simple:
Essayez-le en ligne
la source
<?=count(preg_grep("/$argv[1]/",range($argv[2],$argv[3])));
C,
143135 octetsMerci à @Kritixi Lithos pour avoir aidé à économiser 8 octets
Certes, cela peut être mieux fait, mais c'est le meilleur que j'ai pour le moment. C ne gère pas les chaînes très gracieusement, donc naturellement cela prend pas mal d'opérations.
Programme non golfé +
la source
int i=l
de la boucle for et l'initialiser à la place avecint t=0
comme telint t=0,i=l
pour économiser quelques octets.b[9],n[9],t;C(N,l,h){for(t=!sprintf(n,"%d",N);l<=h;strstr(b,n)&&++t)sprintf(b,"%d",l++);N=t;}
JavaScript,
4645 octetsComptez récursivement jusqu'à début> fin
Modifier: passer au test RegExp pour enregistrer un octet
la source
PHP,
6863 octetsutiliser comme:
edit: 5 octets enregistrés grâce à Titus
la source
strstr($a[2]++,$a[1])>""
au lieu d'strpos($a[2]++,$a[1])!==false
enregistrer 5 octets.Powershell, 48 octets
Selon la règle, la plage peut contenir plus de 50 000 éléments. Nous ne pouvons donc pas utiliser
..
directement l' opérateur de plage . Merci AdmBorkBork .Simple:
Script de test:
Production:
la source
Japt ,
148 octetsPrend l'entier à trouver comme dernière valeur d'entrée.
Essayez-le en ligne
Explication
la source
33
, le nombre3
sera compté comme n'apparaissant qu'une fois, pas deux. " Votre nombre d'occurrences pourW
compterait les3
deux fois.Java,
928971 octetsMaintenant avec les lambdas!
Ancienne solution de fonction à 89 octets:
Hourra pour la fonction super incrément!
la source
int i=l
de la boucle for et le déclarer à la place aveca
likeint a=0,i=l;
pour économiser quelques octetsGolfSharp (hors compétition), 41 octets
en concurrence avec 45 octets
la source
I
fonction pour convertir l'élément en chaîne avant de vérifier s'il en contient.Groovy, 48 octets
la source
Raquette 91 octets
Non golfé:
Essai:
Production:
la source
Octets d'axiome 90
résultats
la source
Mathematica, 70 octets
contribution
production
la source
Clojure, 65 octets
la source
PHP, 56 octets
run as pipe Essayez-le en ligne
Contribution
Code
Explication
la source
Perl 6 , 32 octets
Essayez-le en ligne!
la source