Tarea
Dado un número entero no negativo n
, genera 1
if si n
es 0
y genera el valor de lo n
contrario.
Entrada
Un entero no negativo.
- Si desea aceptar la cadena como entrada, la cadena coincidiría con la siguiente expresión regular:
/^(0|[1-9][0-9]*)$/
es decir, no debe tener ceros a la izquierda, excepto cuando lo sea0
. - Si acepta un entero real como entrada, puede suponer que el entero está dentro de la capacidad de manejo del lenguaje.
Salida
Un entero positivo, especificado anteriormente. Los ceros iniciales no están permitidos. Su salida debe coincidir con la expresión regular /^[1-9][0-9]*$/
.
Casos de prueba
input output
0 1
1 1
2 2
3 3
4 4
5 5
6 6
7 7
Tanteo
Este es el código de golf , por lo que la respuesta más corta en bytes gana.
Se aplican lagunas estándar .
Respuestas:
C (gcc),
1413 bytes¡Gracias a @betseg por recordarme el
n?:1
truco en los comentarios de la otra respuesta C!Pruébalo en línea!
C, 17 bytes
Pruébalo en línea!
C, 16 bytes
Pruébalo en línea!
fuente
3*!n+n
igual3*0+5
.main
desde el quef
se llama a la función / macro . Una solución no necesita ser un programa completo por defecto. La versión específica de gcc puede o no compilarse en otro compilador, y puede o no ejecutarse correctamente cuando se compila en otro compilador.Japt , 2 bytes
Pruébalo en línea!
Explicación
ª
es un atajo para el||
operador de JS . Japt tiene una entrada implícita, por lo que este programa calculainput||1
y el resultado se envía implícitamente a STDOUT.w1
funcionaría también, tomando el máximo de la entrada y1
.fuente
Alice , 7 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript (ES6), 7 bytes
fuente
n=>n+!n
(Al menos eso creo)n|!n
, aunque este se limita a una cantidad de 31 bits.)n=>n||1
podría simplificarsen||1
, entonces no. Las respuestas aceptables son programas completos o funciones.n=>do_something_with(n)
es una función de flecha en la sintaxis de ES6.n
si no es cero. Un OR bit a bit se modificarían
siempre que no se establezca el bit menos significativo (p(4|1) === 5
. Ej .).Pyth, 2 bytes
Pruébalo en línea
Explicación
fuente
Retina , 4 bytes
Pruébalo en línea!
Si la entrada comienza con un cero, reemplácela con un 1. (Funciona porque se garantiza que la entrada no tendrá ceros a la izquierda para valores distintos de cero).
fuente
V , 4 bytes
Pruébalo en línea!
Abusa de un comportamiento no preferido pero esperado , por lo que realmente no puedo llamarlo un error. Explicación:
En Vim, los comandos aceptan un recuento. Por ejemplo,
<C-a>
incrementará un número, pero7<C-a>
incrementará un número en 7. Sin embargo, no puede usarlo0
como un conteo, porque0
ya es un comando (vaya a la primera columna) yEn el contexto de un editor de texto, rara vez tiene sentido solicitar que un comando se ejecute 0 veces.
Esto está bien para un editor de texto, pero generalmente es desagradable para un lenguaje de golf, por lo que V sobrescribe algunos comandos para que
0
sea un recuento válido. Por ejemplo,é
,ñ
,Ä
, y algunos otros. Sin embargo, dado que<C-a>
es un comando vim integrado, no se sobrescribe, por lo que ejecutar esto con una entrada positiva da:Pero correr con 0 como entrada da:
Explicación completa:
fuente
0
no es un conteo es útil. Ni siquiera lo consideré al principio porque lo he evitado muchas vecesJ , 2 bytes
Pruébalo en línea!
^
[argumento] elevado al poder de*
el signo del argumento (0 si 0 más 1)Porque
1=0^0
en J.fuente
Haskell, 5 bytes
Ejemplo de uso:
(max 1) 0
->1
.No hay mucho que explicar.
fuente
dc, 7
Se basa en el hecho de que
dc
evalúa 0 0 a 1, pero 0 n a 0 para todos los demás n.Pruébalo en línea .
fuente
R, 13 bytes
lee
n
de stdin. Conpmax
, puede leer en una lista y devolver el valor apropiado para cada elemento en la lista para +1 byte.Pruébalo en línea!
Debo señalar que hay otra solución R fina en 13 bytes por Sven Hohenstein que permite otra solución de 13 bytes de
lo que me hace preguntarme si ese es el límite inferior para R.
fuente
pryr
:pryr::f(n+!n)
. No puedo encontrar nada más pequeño ...Cubix , 6 bytes
De alguna manera logró colocarlo en un cubo de unidad ... ¡ Pruébelo en línea!
Explicación
Antes de ejecutarse, el código se organiza como una red de cubos:
El IP (puntero de instrucción) se coloca en la cara izquierda (
I
), hacia la derecha. Las instrucciones que se ejecutan desde allí son:La IP luego golpea
!
nuevamente, omitiendo la@
en la cara inferior. Esto no es útil, ya que debemos presionar@
para finalizar el programa. La IP golpeaL
nuevamente y atraviesa la línea media en reversa (L1!I
) antes de terminarL
una vez más, lo que finalmente activa la IP@
.fuente
brainfuck , 8 bytes
Pruébalo en línea!
fuente
V , 5 bytes
Donde
<C-a>
es0x01
.Pruébalo en línea!
Explicación
fuente
Jalea, 2 bytes
Pruébalo en línea!
Casi exactamente mi respuesta de Pyth, pero es mi primer programa Jelly.
fuente
Oasis , 2 bytes
Utiliza la siguiente fórmula: a (0) = 1 , a (n) = n
Pruébalo en línea!
fuente
>V
.R
2016 bytesfuente
Brachylog , 3 bytes
Pruébalo en línea!
Explicación
Si agregamos el implícito
?
(Entrada) y.
(Salida), tenemos:fuente
MarioLANG , 12 bytes
Pruébalo en línea!
Cómo funciona
Mario comienza en la parte superior izquierda, inicialmente caminando hacia la derecha. Él lee un int de input (
;
) y lo almacena en la celda de memoria actual. Luego se cae del suelo (=
), golpeando[
, lo que le hace ignorar el siguiente comando si la celda actual es 0.Si la celda no es 0, comenzará a caminar hacia la izquierda (
<
), generará la celda actual como un int (:
) y caerá a su muerte (fin del programa).Si la celda es 0, ignora el comando de girar a la izquierda y sigue caminando hacia la derecha. Incrementa la celda actual (
+
), la genera y cae a su muerte.fuente
Brain-Flak ,
22, 10 bytesPruébalo en línea!
Explicación:
Si la entrada no es cero, entonces
{{}}
sacará todo de la pila y lo evaluará. Si es cero, no aparecerá nada y se evaluará a cero. Entonces correr({{}})
daNo cero:
Cero:
En este punto, agregaremos la altura de la pila (0 para no cero, 1 para cero) y sacaremos un valor más de la pila. (dado que la pila se rellena con un número infinito de 0, aparecerá el 0 superior o un 0 adicional)
fuente
TI-BASIC, 7 bytes
Alternativamente,
TI-BASIC, 7 bytes
fuente
Hexagony ,
7 76 bytesExpandido:
Pruébalo en línea!
¡Guardado 1 byte gracias a Martin!
Si el número no es cero, imprímalo; de lo contrario, agréguele uno e imprímalo.
fuente
APL (Dyalog) , 3 bytes
Pruébalo en línea!
Esto toma el techo del argumento y
1
.fuente
Python, 15 bytes
fuente
n or 1
6 bytes?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
siempre volvería1
, ¿no?lambda n:n|1>>n
dc, 11 bytes
[1]sf
almacena una macro en el registro f que empuja 1 a la parte superior de la pila,?
lee la entrada,d0=f
ejecuta la macro f si la entrada fue 0,p
imprime la parte superior de la pila.Prueba:
fuente
Excel, 10 bytes
Esto ahorra 4 bytes a través de la solución afirmación obvia 'SI',
=IF(A1=0,1,A1)
.fuente
=A1+NOT(A1)
Java 8, 10 bytes
fuente
i==0
puede ser reemplazado pori<1
R, 13 bytes
Aquí,
scan
se usa para leer el valor de entradan
. La negación den
(es decir,!n
0 o 1) se agrega an
.fuente
Mathematica,
98 bytesPor Martin Ender:
Primera idea
Función pura con reemplaza
0
con1
. El espacio es necesario o cree que estamos dividiendo por.0
.fuente
Perl 5, 6 + 2 bytes para los indicadores -l y -p
Toma entrada en líneas separadas de stdin. Corre con las banderas
-lp
.fuente