El programa debe ingresar el número, el inicio del rango y el final del rango, y mostrar cuántos enteros aparece el número entre el inicio y el final del rango, inclusive . Se permiten tanto programas como funciones.
Entradas de ejemplo
Por ejemplo:
//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);
Los cuatro ejemplos de entrada anteriores son válidos y todos ellos significan que 3
es el número en cuestión, 1
es el comienzo del rango y 100
el final del rango.
Y a continuación, el programa debe ser la salida cuántas veces 3
aparece en el rango de 1
al 100
incluyente . 3
aparece en los números enteros 3
, 13
, 23
, 30
, 31
, 32
, 33
, ..., 93
en un total de 19 veces. Entonces, el programa debería salir 19
como salida porque esa es la cantidad de veces que 3
aparece en el rango de 1
a 100
.
Reglas
- Se permiten tanto programas como funciones.
- Todos los números serán números enteros, lo que significa que habrá no haber ningún
float
s o double
s.
- Nota: el número buscado siempre estará en el rango
0≤x≤127
. Habrá hay casos en los que será fuera de esta 0≤x≤127
gama.
- Como en el primer ejemplo, con el caso como
33
, el número 3
se contará como aparece solo una vez , no dos veces.
- Los valores del inicio y el final del rango serán entre
-65536
e 65535
inclusive.
- El valor del inicio del rango nunca excederá o será igual al final del rango.
start < end
- También el rango es inclusivo. Por ejemplo, si la entrada fue
8 8 10
, el rango sería 8≤x≤10
y, por lo tanto, la salida será 1.
- La entrada se puede tomar de cualquiera de las formas que se muestran en los ejemplos. La entrada puede tomarse como una cadena o como un número, de la forma que desee.
Casos de prueba
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
Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:
# Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:
# Perl, 43 + 2 (-p flag) = 45 bytes
También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento de la tabla de clasificación:
# [><>](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, perdí antes de comenzar de nuevo.Ÿʒ³å}g
Bash, 20 bytes
la respuesta obvia
ejemplo
fuente
Perl, 20 bytes
Se guardaron 2 bytes usando
grep
como en la respuesta de @ ardnew .Bytecount incluye 18 bytes de código y
-ap
banderas.Dé los 3 números en tres líneas separadas:
fuente
Python 2,
4743 BytesRelativamente sencillo, haciendo uso de la forma
repr
corta de Python 2 .Ouput:
fuente
-~a
lugar dea+1
?JavaScript (ES6),
4645 bytes(Mi mejor versión no recursiva fue de 61 bytes). Editar: Guardado 1 byte gracias a @ edc65.
fuente
!!match
en lugar deincludes
.Jalea , 7 bytes
TryItOnline!
Entrada: Inicio, Fin, ToFind
¿Cómo?
La conversión predeterminada de un entero a un iterable para la existencia de la sublista verifica la conversión a una lista decimal (no una lista de caracteres), por lo que los números negativos tienen un valor negativo inicial (por ejemplo,
-122
->[-1,2,2]
que no encontrará una sublista de[1,2]
), por lo que El valor absoluto primero parece la solución más golfista.fuente
PowerShell v2 +,
646256 bytes-6 bytes gracias a mazzy
Entrada a través de argumentos de línea de comandos del número de formulario lower_bound upper_bound . Un poco tonto en la notación, debido a los puntos y comas dentro de los
for
errores de análisis que causan si no está rodeado$(...)
para crear un bloque de script. Básicamente, hacemos un bucle ascendente$a
hasta que golpeamos$b
, usandoWhere-Object
(the|?{...}
) para extraer esos números-match
contra los que regexamos$c
. Eso está encapsulado en parens, tomamos el.count
mismo, y eso queda en la tubería y la salida está implícita.Sin embargo, si garantizamos que el rango no será más de 50,000 elementos, podemos omitir el ciclo y simplemente usar el operador de rango
..
directamente, para4543 bytes . Sin embargo, como eso no está en las especificaciones del desafío, esto no es válido. Gorrón.fuente
param($c,$a,$b)$(for(;$a-le$b){1|?{$a++-match$c}}).count
param($c,$a,$b)($a..$b|?{$_-match$c}).count
trabajos con rango -65536..65535 enPowershell 5.1
Vim,
46, 41 bytesLa entrada está en este formato:
fuente
Haskell, 65 bytes
El
import
arruina el marcador. Ejemplo de uso:((-200)#200)12
->24
.fuente
Java 7 85 bytes
fuente
Swift 3,
9693 bytesEditar 1:
Guardado 3 bytes mediante el uso de parámetros abreviados
fuente
Scala, 50 bytes
toma la primera entrada al curry; llámalo así:
f("12")(-200,200)
Explantación
fuente
R, 32 bytes
Bastante sencillo:
fuente
a=scan();sum(grepl(a,a[2]:a[3]))
o como argumentos de una función:function(a,b,c)sum(grepl(a,b:c))
ambos equivalentes en este caso.C #, 71 bytes
Batir mi respuesta Java gracias a lambdas
fuente
(n,s,e)=>s>e?0:((""+s).Contains(n+"")?1:0)+f(n,++s,e);
es camino más cortoRuby 44 bytes
Casos de prueba:
fuente
PHP, 62 bytes
Enfoque bastante directo:
Pruébalo en línea
fuente
<?=count(preg_grep("/$argv[1]/",range($argv[2],$argv[3])));
C,
143135 bytesGracias a @Kritixi Lithos por ayudar a ahorrar 8 bytes
Seguramente esto se puede hacer mejor, pero es lo mejor que tengo por ahora. C no maneja las cadenas con mucha gracia, por lo que, naturalmente, requiere bastantes operaciones.
Ungolfed + programa
fuente
int i=l
del bucle for y, en su lugar, inicializarloint t=0
como talint t=0,i=l
para guardar algunos bytes.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 bytesCuenta recursivamente hasta el inicio> fin
Editar: cambie a la prueba RegExp para guardar un byte
fuente
PHP,
6863 bytesusar como:
editar: 5 bytes guardados gracias a Titus
fuente
strstr($a[2]++,$a[1])>""
en lugar destrpos($a[2]++,$a[1])!==false
guardar 5 bytes.Powershell, 48 bytes
Según la regla, el rango puede contener más de 50,000 elementos. Por lo tanto, no podemos usar el operador de rango
..
directamente. Gracias AdmBorkBork .Sencillo:
Script de prueba:
Salida:
fuente
Japt ,
148 bytesToma el entero como el último valor de entrada.
Pruébalo en línea
Explicación
fuente
33
, el número3
se contará como aparece sólo una vez, no dos veces. " Su ocurrencia de conteo paraW
que cuente el3
doble.Java,
928971 bytesAhora con lambdas!
Antigua solución de función de 89 bytes:
¡Hurra por la función súper incremental!
fuente
int i=l
el bucle for y, en su lugar, declararlo cona
int a=0,i=l;
GolfSharp (no competidor), 41 bytes
45 bytes competidores
fuente
I
función para convertir el elemento a una cadena primero antes de verificar si lo contiene.Groovy, 48 bytes
fuente
Raqueta 91 bytes
Sin golf:
Pruebas:
Salida:
fuente
Axioma bytes 90
resultados
fuente
Mathematica, 70 bytes
entrada
salida
fuente
Clojure, 65 bytes
fuente
PHP, 56 bytes
correr como tubería Pruébalo en línea
Entrada
Código
Explicación
fuente
Perl 6 , 32 bytes
Pruébalo en línea!
fuente