Si un chiffre est compris entre 0 et 9 (inclus), votre fonction / sous-routine doit imprimer tous les nombres compris entre -100 et 100 (inclus) contenant le chiffre indiqué.
Par exemple:
Input: 9
Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99
Règles:
- Vous ne pouvez pas utiliser de chaînes (de quelque manière qu'elles soient représentées dans la langue de votre choix) ni de tableaux de caractères. (Sauf pour imprimer la réponse sur la console.)
- Vous ne pouvez pas utiliser de tableaux.
Notation:
Score = longueur du sous-programme / fonction (les espaces ne seront pas comptés)
La réponse avec le score le plus bas gagne.
Les espaces ne seront PAS comptés. Veuillez formater votre code correctement!
Certaines réponses utilisent des expressions régulières, qui peuvent enfreindre la règle du non-chaines, comme l'ont souligné certains membres. Ces réponses ne seront pas acceptées.
Veuillez tester votre code 0
avant de poster.
Réponses:
Espace blanc, 834 caractères (0 si vous soustrayez des espaces)
Utilisé cet interprète pour le tester.
Cela m'a pris environ 4 heures de travail acharné et de débogage horrible à créer. Mais c'est fait!
EDIT : Texte sélectionnable fourni avec des astuces HTML. Si vous le copiez et le collez d’ici à un autre endroit, vérifiez si vous avez exactement
[space][tab][linefeed][linefeed][linefeed]
100 ou 101 lignes à la fin (selon que votre éditeur compte ou non une nouvelle ligne si la dernière se termine par un saut de ligne).Dans le cas où vous ne pouvez pas l’utiliser de cette façon, en considérant l’espace en tant que
S
, le saut de ligne en tant queL
et la tabulation en tant queT
, et les lignes de séparation après leL
, vous le trouverez ici:la source
Bash + utils - 20
Ou 21 octets si dans un script
Pour exécuter le script:
la source
grep
n'est pasbash
oush
. C'est un autre utilitaire!JavaScript 133 - 1 = 132
Il n’ya sûrement pas de problème avec cette version maintenant…?
la source
for(i=-100,r=prompt();101>i;i++)(i+'').match(r)&&console.log(i)
.alert(RegExp(9).test(99))
qui repose uniquement sur des chiffres et qui est également renvoyé entrue
raison du système de frappe mal conçu de JavaScript. Les fonctions fonctionnent avec les nombres comme si elles étaient des chaînes mais restaient des nombres ... Si vous modifiez le code pour le lirer=RegExp(x=+prompt());for(i=-100;101>i;i++)r.test(i)&&console.log(i);console.log(typeof(x));console.log(typeof(i))
et l'exécuter, le type final de réponse s'afficherax
et,i
sous forme de nombres ... Ergo, je n'utilise pas de chaînes. ...GolfScript [24 octets]
La description:
DEMO: http://golfscript.apphb.com/?c=MwoKYDp4OzIwMSx7MTAwLX0le2B4Py0xPn0sYA%3D%3D
la source
Ruby: 92 caractères
Version lisible:
Échantillon échantillon:
Essai:
la source
0
test.K - 45 caractères
Ne remportant aucun prix, mais K golf est sous-représenté. K n'obtient pas plus joli avec un espacement correct, je vais donc laisser cela comme cela, car K devient très difficile en ce qui concerne les espaces qui sont importants et ceux qui ne le sont pas.
A expliqué:
a:100-!201
- Faites une liste de 0 à 200 inclus, puis soustrayez-la de 100. Nous avons maintenant les nombres de -100 à 100 inclus, mais à l'envers des spécifications de la question. Nous pouvons toujours résoudre ce problème plus tard, donc pour le moment, nous allons simplement attribuer cela àa
._ _abs
- Prenez la parole sur la valeur absolue de ces nombres, car pour une raison quelconque K pense que_abs
devrait donner des résultats en virgule flottante. Heureusement, les revêtements de sol les transforme en nombres entiers.10_vs'
- Développer chaque'
nombre entier ( ) en un nombre de base 10 (_vs
signifie "vecteur de scalaire"). Notez que nous n'avons pas eu à utiliser l'opérateur Each'
sur les fonctions ci-dessus car elles fonctionnent sur des atomes.@[...;100;0,]
- Modifiez l’item de notre liste à l’indice 100 (une liste vide, résultat de l’extension de 0 en base 10) par la fonction0,
, qui ajoute un zéro au premier plan. Sans cette correction, cette fonction échouera sur l'entrée 0.&x in'
- Maintenant, retourne les index (&
) oùx
est un chiffre entre (_in
) chaque ('
des développements que nous avons si soigneusement construits ci-dessus.|a@
- Enfin, utilisez ces index pour indexera
et inverser la liste dans le bon ordre.L'utilisation est évidente, mais bonne chance pour mettre la main sur un interprète K. ( Vous pouvez compiler une implémentation open source sur Github .)
la source
frapper
5549 caractères:(sans compter les espaces blancs autour
&&
)L'exécutant en disant:
produirait:
la source
;
s en nouvelles lignes et gagner 2 points.PHP 67 octets:
Oui, il y a un appel «strpos», mais je n'utilise que des chiffres!
Voici une version "non-golfée":
Pour que cela fonctionne, vous pouvez le tester ici: http://writecodeonline.com/php/
Rappelez-vous juste d'ajouter
$_GET[n]='<number>';
au début du code.Ou, sur un serveur lamp ou xampp, vous pouvez créer une page puis y accéder sur le navigateur, avec le paramètre
?n=<number>
après le nom du fichier.la source
Mathematica 28
Désolé, je n'ai pas pu résister.
:)
Les instructions sont les suivantes: "Si un chiffre est compris entre 0 et 9 (inclus), votre fonction / sous-routine doit imprimer tous les nombres compris entre -100 et 100 (inclus) contenant le chiffre donné."
Ce qui suit imprime tous ces numéros dans l’ordre.
En prime, il imprime les nombres de la même plage qui ne contiennent pas le chiffre indiqué. :)
la source
Ma première tentative ici, alors peut-être que je fais quelque chose de mal, veuillez l'excuser;)
Donc, je n'étais pas sûr de devoir ajouter toute la classe ou seulement la logique à l'intérieur.
Java - 199 caractères
Voici un formulaire plus lisible:
Je suppose que l’idée de base n’était pas si mauvaise, mais qu’elle nécessitait trop d’exceptions pour enfin convenir à tous les cas ...: /
la source
0
:(intx
... ne devrait-il pas êtreint x
:?C -
104107114 caractères - 0 =104107114Ungolfed:
la source
0
contient0
.R 87
93Voici une amélioration:
(Potentiellement) Plus lisible, avec des notes:
la source
0
.0
. Avez-vous essayé avec cette version la plus récente? J'utilise R 3.0.1.Prolog: 75
la source
test.pl
fichier, commencéswipl
, entréconsult('test')
puis entréf(9)
. Mais cela ne fait que revenirfalse
.C réponse en 98 caractères
C'est l'une des choses les plus sexy que j'ai jamais codé
L'ancienne version, avec 104 caractères non blancs:
"Fonctionne pour moi" en utilisant GCC et CLANG.
la source
GNU coreutils (44)
où
tr
est utilisé pour convertir les nouvelles lignes en espaces etecho
fournit une dernière ligne.la source
Javascript 116
la source
J - 27 chars
All whitespace is safely removable, meaning 27 characters. Negative numbers in output will have
_
for a negative sign: this is just the way J writes its negative numbers.Explained:
V & (i: 100)
- Bind (&
) the set of numbers from -100 to 100 inclusive (i:100
) as the right argument of the main verb (V
). The single argument of the entire verb gets piped into the left side.(U"0 # ])
- Use the result of the verbU
over each number from the right argument ("0
) to select (#
) items from the right argument (]
).(e. 10 #.^:_1 |)
- Given the digit to test for as the left argument and the number to check as the right argument, expand in base 10 (10 #.^:_1
) the absolute value of the number (|
), and check if the digit is an element of that expansion (e.
).Usage:
la source
-
Negate/Minus. K lets you use the negative sign "naturally" in numbers, and incidentally K came out an arcane syntactic clusterfuck. If it's really irking you, work in your choice of;8!:1
,'4.0'8!:2
, or'-'I.@:=&'_'}":
, costing 7, 11, and 16 chars respectively to make the resulting program a function instead of an expression, by my count.Groovy, 127
No strings (except to output the spaces between the numbers), no char arrays or other arrays, no regexes. Tested with 0. Output:
-100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100
la source
Javascript - 108
Not sure if existing javascript answer will be taken into consideration because it uses regex, so I created one without it:
Can also be shortened to 101 if x variable is put directly, like:
It basically checks if absolute values of div or mod operations are equal to the digit (which also works for 100).
la source
x=1
, this fails to print-100
or100
.1
works nicely, but now0
prints1
,2
,3
... Sorry to be a troublemaker here.prompt()
returns string, so I added *1 and it hopefully should be ok now. THank you for your suggestionsparseInt(j/10)
can be replaced with(0|j/10)
which is both shorter and avoids the implicit strings. The (unavoidable) string-to-number conversion inprompt()*1
cannot be shortened as+prompt()
. (Or shorter still, change the function to startfor(x=+prompt(i=-100);...
.GW Basic: 107 characters excluding whitespace
Using single digits for the line numbers helps and stripping the whitespace means there isn't really a need for having multiple statements on a line more than once to keep numbers reaching 10.
la source
GROOVY, 71
Results in
la source
Javascript 96
Using bitwise or:
la source
Haskell,
8675 (78 with necessary whitespaces)Ungolfed:
la source
a 0=[-100....
anda d=[b|b<-....
you can get rid of theif then else
and save a few bytes.Python - 172 chars
To test within Python:
la source
VBA 121
(no whitespace or
Sub
definition counted):la source
0
?IIf(d = 0, IIf(d = n Mod 10, " " & n, "")
perl, 117 with non-meaningful whitespace chars removed
I think you were looking for something more like this. Reads from stdin, outputs one line per match. No regexps, arrays (or sets or hashes or anything else that is an array under the covers) or strings, implicit or otherwise, except the strings passed to print:
eg:
la source
F#
8792 - 7added 5 chars because 0 wasn't handled correctly. (Single digit values would all be returned.)
la source
This is my first time playing code golf. This looks pretty interesting. I can't win, but I tried and wanted to show what I could do.
Python: 104 (89 if I can mulligan the import) - if the results must be printed exactly as shown in the example
Python: 71 - if the output can be done outside the function and the only restriction for the output is that no violating numbers are printed
la source
JavaScript 125 char
Sorry for the several edits I've been having troubles doing this from my phone :)
la source
Dogelang, 42 non-whitespace characters
Same as my Python solution, just converted to dogelang.
la source