Tâche
Étant donné un entier non négatif n
, output 1
si n
is 0
et output la valeur n
sinon.
Contribution
Un entier non négatif.
- Si vous souhaitez accepter la chaîne en tant qu'entrée, la chaîne correspond aux expressions rationnelles suivantes:,
/^(0|[1-9][0-9]*)$/
c'est-à-dire qu'elle ne doit pas avoir de zéros à gauche, sauf si c'est le cas0
. - Si vous acceptez un entier réel comme entrée, vous pouvez supposer que cet entier se situe dans les limites de la capacité de traitement de la langue.
Sortie
Un entier positif, spécifié ci-dessus. Les zéros en tête ne sont pas autorisés. Votre sortie doit correspondre à la regex /^[1-9][0-9]*$/
.
Testcases
input output
0 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
Notation
C'est du code-golf , donc la réponse la plus courte en octets est gagnante.
Les failles standard s'appliquent.
Réponses:
C (gcc),
14 à13 octetsMerci à @betseg de m'avoir rappelé le
n?:1
truc dans les commentaires de l'autre réponse C!Essayez-le en ligne!
C, 17 octets
Essayez-le en ligne!
C, 16 octets
Essayez-le en ligne!
la source
3*!n+n
qui est égal3*0+5
.main
partir duquel la fonction / macrof
est appelée. Une solution n'a pas besoin d'être un programme complet par défaut. La version spécifique à gcc peut ou peut ne pas être compilée sur un autre compilateur, et elle peut ou ne peut pas fonctionner correctement lorsqu'elle est compilée sur un autre compilateur.Japt , 2 octets
Essayez-le en ligne!
Explication
ª
est un raccourci pour l'||
opérateur de JS . Japt a une entrée implicite, donc ce programme calculeinput||1
et le résultat est envoyé implicitement à STDOUT.w1
fonctionnerait aussi bien, en prenant le maximum de l'entrée et1
.la source
Alice , 7 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6), 7 octets
la source
n=>n+!n
(du moins je le pense)n|!n
, bien que celui-ci soit limité à 31 bits.)n=>n||1
pourrait être simplifién||1
, alors non. Les réponses acceptables sont soit des programmes complets, soit des fonctions.n=>do_something_with(n)
est une fonction de flèche dans la syntaxe ES6.n
si ce n'est pas zéro. Un OU au niveau du bit serait modifién
chaque fois que le bit le moins significatif n'est pas défini (par exemple(4|1) === 5
).Pyth, 2 octets
Essayez-le en ligne
Explication
la source
Rétine , 4 octets
Essayez-le en ligne!
Si l'entrée commence par un zéro, remplacez-la par 1. (Fonctionne, car il est garanti que l'entrée n'a pas de zéros à gauche pour les valeurs non nulles.)
la source
V , 4 octets
Essayez-le en ligne!
Abuse un comportement non préféré mais attendu , donc je ne peux pas vraiment l'appeler un bug. Explication:
Dans Vim, les commandes acceptent un compte. Par exemple,
<C-a>
incrémentera un nombre, mais7<C-a>
incrémentera un nombre de 7. Cependant, vous ne pouvez pas l'utiliser0
comme un compte, car0
est déjà une commande (allez dans la première colonne), etDans le contexte d'un éditeur de texte, il est rarement logique de demander qu'une commande soit exécutée 0 fois.
C'est bien pour un éditeur de texte, mais généralement désagréable pour une langue de golf, donc V écrase certaines commandes, ce qui en
0
fait un nombre valide. Par exemple,é
,ñ
,Ä
, et quelques autres. Cependant, puisqu'il<C-a>
s'agit d'une commande vim intégrée, elle n'est pas écrasée. Son exécution avec une entrée positive donne donc les résultats suivants:Mais courir avec 0 comme entrée donne:
Explication complète:
la source
0
ne pas être un compte est utile. Je n'y ai même pas pensé au début parce que je l'ai évité si souventJ , 2 octets
Essayez-le en ligne!
^
[argument] élevé à la puissance de*
le signe de l'argument (0 si 0 sinon 1)Parce que
1=0^0
dans J.la source
Haskell, 5 octets
Exemple d'utilisation:
(max 1) 0
->1
.Rien à expliquer.
la source
dc, 7
S'appuie sur le fait qui
dc
évalue 0 0 à 1, mais 0 n à 0 pour tous les autres n.Essayez-le en ligne .
la source
R, 13 octets
lit
n
de stdin. Avecpmax
, il peut lire une liste et renvoyer la valeur appropriée pour chaque élément de la liste pour +1 octet.essayez-le en ligne!
Je dois noter qu’il existe une autre solution R de 13 octets de Sven Hohenstein qui permet une solution de 13 octets supplémentaire.
ce qui me fait me demander si c'est la limite inférieure de R.
la source
pryr
:pryr::f(n+!n)
. Je ne trouve rien de plus petit ...Cubix , 6 octets
En quelque sorte réussi à l'adapter sur un cube d'unité ... Testez-le en ligne!
Explication
Avant d'être exécuté, le code est organisé comme un réseau de cubes:
L'IP (pointeur d'instruction) est ensuite placé sur la face extrême gauche (
I
), tournée vers la droite. Les instructions à partir de là sont:L'IP frappe ensuite à
!
nouveau, en ignorant la@
face inférieure. Ce n'est pas utile, car nous devons frapper le@
pour mettre fin au programme. L'IP frappe àL
nouveau et passe par la ligne médiane en sens inverse (L1!I
) avant de se retrouverL
une fois de plus, ce qui active enfin l'IP@
.la source
brainfuck , 8 octets
Essayez-le en ligne!
la source
V , 5 octets
Où
<C-a>
est0x01
.Essayez-le en ligne!
Explication
la source
Gelée, 2 octets
Essayez-le en ligne!
Exactement ma réponse Pyth, mais c’est mon premier programme Jelly.
la source
Oasis , 2 octets
Utilise la formule suivante: a (0) = 1 , a (n) = n
Essayez-le en ligne!
la source
>V
.R
2016 octetsla source
Brachylog , 3 octets
Essayez-le en ligne!
Explication
Si nous ajoutons l'implicite
?
(Input) et.
(Output), nous avons:la source
MarioLANG , 12 octets
Essayez-le en ligne!
Comment ça marche
Mario commence en haut à gauche, en commençant par la droite. Il lit un int de input (
;
) et le stocke dans la cellule de mémoire courante. Puis il tombe du sol (=
) en frappant[
, ce qui lui fait ignorer la commande suivante si la cellule en cours est 0.Si la cellule n'est pas 0, il commencera à marcher à gauche (
<
), affichera la cellule actuelle en tant que int (:
) et tombera à sa mort (fin du programme).Si la cellule est à 0, il ignore la commande de tourner à gauche et continue de marcher à droite. Il incrémente la cellule actuelle (
+
), la sort et tombe jusqu'à sa mort.la source
Brain-Flak ,
22, 10 octetsEssayez-le en ligne!
Explication:
Si l'entrée est non nulle, alors tout
{{}}
sera enlevé de la pile et évalué en entrée. Si la valeur est zéro, rien ne sera affiché et l'évaluation sera égale à zéro. Donc courir({{}})
donneNon nul:
Zéro:
À ce stade, nous ajouterons la hauteur de la pile (0 pour différent de zéro et 1 pour zéro) et supprimerons une valeur supplémentaire de la pile. (étant donné que la pile est complétée par un nombre infini de 0, cela affichera soit le 0 supérieur, soit un 0 supplémentaire)
la source
TI-BASIC, 7 octets
Alternativement
TI-BASIC, 7 octets
la source
Hexagone ,
76 octetsÉtendu:
Essayez-le en ligne!
Sauvé 1 octet grâce à Martin!
Si le nombre est différent de zéro, imprimez-le, sinon ajoutez-en un et imprimez-le à la place.
la source
APL (Dyalog) , 3 octets
Essayez-le en ligne!
Cela prend le plafond de l'argument et
1
.la source
Python, 15 octets
la source
n or 1
, 6 octets?The rules are not terribly clear. I think we have a consensus on meta that REPLs count, but as a separate language, which would allow snippets in many cases, but snippets are not permitted according to this meta post
-> codegolf.meta.stackexchange.com/questions/2419/…1or n
reviendrait toujours1
, n'est-ce pas?lambda n:n|1>>n
dc, 11 octets
[1]sf
stocke une macro dans le registre f qui pousse 1 en haut de la pile,?
lit l'entrée,d0=f
exécute la macro f si l'entrée vaut 0,p
affiche le haut de la pile.Tester:
la source
Excel, 10 octets
Cela permet d' économiser 4 octets sur la solution évidente de déclaration « IF »,
=IF(A1=0,1,A1)
.la source
=A1+NOT(A1)
Java 8, 10 octets
la source
i==0
can be replaced byi<1
R, 13 bytes
Here,
scan
is used to read the input valuen
. The negation ofn
(i.e.,!n
, 0 or 1) is added ton
.la source
Mathematica,
98 bytesPer Martin Ender:
First idea:
Pure function with replaces
0
with1
. The space is necessary or it thinks we are dividing by.0
.la source
Perl 5, 6 + 2 bytes for the -l and -p flags
Takes input on separate lines from stdin. Runs with the flags
-lp
.la source