Para una lista dada de número encuentra el último dígito de x x x … x n 3 2 1 Ejemplo:
[3, 4, 2] == 1
[4, 3, 2] == 4
[4, 3, 1] == 4
[5, 3, 2] == 5
Porque .
Porque .
Porque .
Porque .
Reglas:
Este es el código de golf, por lo que gana la respuesta con la menor cantidad de bytes.
Si su idioma tiene límites en el tamaño del entero (ej. ) n será lo suficientemente pequeño como para que la suma encaje en el entero.
La entrada puede tener cualquier forma razonable (stdin, archivo, parámetro de línea de comando, entero, cadena, etc.).
La salida puede tener cualquier forma razonable (stdout, archivo, elemento gráfico de usuario que muestre el número, etc.).
Vi en la guerra de códigos.
number
s. ¿Te refieres a enteros positivos exclusivamente? Es decir, siento cómo se interpretó.[999999,213412499,34532599,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
es válida y el resultado debería ser.1
Si es así, esto debe aclararse en la pregunta, ya que ha votado respuestas que no resuelven esto (pista: mueva elmod
interior del bucle). Quizás agregue algunos ejemplos que aclaren esto.9
. El esquema de reducción de dígitos necesario para implementar esto es mucho más interesante que las respuestas reales que este problema ha generado.Respuestas:
JavaScript (ES7), 22 bytes
Limitado a .253- 1
Pruébalo en línea!
fuente
**
es el operador de exponenciación de JavaScript. El resto es bastante sencillo.a.join`**`
es equivalentea.join(['**'])
y['**']
es forzado'**'
por eljoin
método.n % 10
lo que devolverá el último dígito den
R , 25 bytes
Pruébalo en línea!
fuente
Reduce
se use.Haskell, 19 bytes
Pruébalo en línea!
fuente
HP 49G RPL, 36.5 bytes
Ejecútelo en modo APROXIMADO (pero ingrese el programa en modo EXACTO). Toma información en la pila con el primer elemento más profundo en la pila, como enteros o reales.
Expone directamente en la pila como en la solución de Sophia hasta que queda un valor, luego toma el mod 10 para obtener el último dígito.
La razón por la que uso APPROX para el cálculo es porque 0.0 ^ 0.0 = 1 (cuando ambos son reales), pero 0 ^ 0 =? (cuando ambos son enteros). APPROX obliga a todos los enteros a reales, por lo que la entrada está bien con cualquiera de los dos. Sin embargo, uso EXACT para ingresar al programa porque 10 (entero) se almacena dígito por dígito y tiene 6.5 bytes, pero 10.0 (real) se almacena como un número real completo y tiene 10.5 bytes. También evito usar la reducción de RPL (llamada STREAM) porque introduce un objeto de programa adicional, que es 10 bytes de sobrecarga. Ya tengo uno y no quiero otro.
Limitado a la precisión de un HP 49G real (12 dígitos decimales)
-10 bytes después de la lista vacía -> 1 requisito eliminado.
-2 bytes tomando entrada en la pila.
fuente
dc ,
1715 bytesPruébalo en línea!
Toma entrada de la pila, salidas a la pila. Implementación muy sencilla: expone hasta que solo quede un valor en la pila y mod para el último dígito.
¡Gracias a brhfl por guardar dos bytes!
fuente
10%
aA%
, y un byte más al no verificar la profundidad de la pila dos veces, simplemente coloque un1
tope de la pila antes de ejecutar desde n ^ 1 == n:1[^z1<M]dsMxA%
A
como literal mientras estaba configurado como entrada decimal. Gracias @brhfl!J , 5 bytes
-3 bytes gracias a cole!
Pruébalo en línea!
fuente
10|^/
funciona05AB1E , 4 bytes
Pruébalo en línea!
Explicación
fuente
E
en el encabezado)..V
..«mθ
se parece más a un fragmento, ya que, por sí solo, no puede asignarlo a una variable para su posterior reutilización. Bueno, Adnan ahora solucionó el problema, pero eh.Pure Bash (solo incorporado, sin utilidades externas), 21
La entrada se da en la línea de comando como una lista separada por comas.
Los enteros Bash están sujetos a límites enteros con signo normal para las versiones de 64 y 32 bits.
Pruébalo en línea!
fuente
^
es XOR bit a bit, por lo que estás5
saliendo del caso de prueba en lugar del correcto1
. Tendrá que agregar un byte para cambiar a**
^
introdujo eso : tuve**
en iteraciones anteriores de mi ciclo de desarrollo.Wolfram Language (Mathematica) , 16 bytes
Pruébalo en línea!
fuente
Python 2 y Python 3 , 30 bytes
Pruébalo en línea!
Se
N
espera que la entrada sea un objeto iterable sobre representaciones de cadenas de literales numéricos .fuente
Ruby,
4147 bytesAumento de tamaño debido al manejo de cualquier 0 en la matriz de entrada, que necesita consideración adicional. Gracias a
rewritten
Esto se resuelve porque creo que la fuente original pretendía, es decir, para exponenciaciones muy grandes que no encajan en los enteros nativos del lenguaje; la restricción es que la matriz sumará
2**32-1
, no que los cálculos provisionales también estén garantizados. De hecho, ese parece ser el objetivo del desafío en Code Wars. Aunque los enteros nativos de Ruby pueden crecer bastante, no pueden hacer frente al siguiente ejemplo procesado ingenuamente con un% 10 al finalP.ej
Entrada:
[999999,213412499,34532597,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
Salida:
9
fuente
n**(t%4+4)
conn**((t-1)%4+1)
lo que se obtienen**1
en lugar den**5
etc. felicitaciones por la observación de que en cualquier etapa 4 sería un buen ciclo.n<2?n:
antesn**
.05AB1E , 8 bytes
Pruébalo en línea!
fuente
...gGm}10%
(o algo más golfista).Perl 6 , 14 bytes
Pruébalo en línea!
Utiliza los meta corchetes de reducción con el operador **, módulo 10.
fuente
APL (Dyalog Unicode) , 5 bytes
Pruébalo en línea!
fuente
C # (.NET Core) , 84 bytes
Pruébalo en línea!
fuente
a
y combinando la condición del bucle con la disminución (for(var i=a.Lengt-1;i-->0;)
). Pero lausing
declaración debe incluirse en el recuento de bytes.C (gcc) , 56
Función recursiva
r()
llamada desde macrof
: se aplican límites de pila normales.Entrada dada como una matriz int terminada en cero. Esto se da por supuesto que ninguna de las x n es cero.
Pruébalo en línea!
fuente
) r(
->)r(
.r(int*n){return pow
al golfR;r(int*n){R=pow
.Julia 0.6 , 30 bytes
Pruébalo en línea!
Esta es una función anon
∘ es el operador de composición.
Son múltiples bytes
fuente
Japt
-h
, 7 bytesPruébalo en línea!
Explicación:
fuente
Japt
-h
,76 bytesSi la entrada se puede tomar en orden inverso, se puede eliminar el primer carácter.
Limitado a
2**53-1
.Intentalo
Explicación
fuente
Jalea , 6 bytes
Pruébalo en línea!
fuente
Python 2 ,
4543 bytesPruébalo en línea!
fuente
Excel VBA, 60 bytes
Una función de ventana inmediata anónima VBE que toma la entrada del rango
[A1:XFD1]
fuente
Stax , 7 bytes
Ejecutar y depurarlo
Algoritmo como en mi respuesta de Python
fuente
CJam , 14 bytes
Debería funcionar para cualquier entrada, ya que CJam no está limitado a enteros de 64 bits
Pruébalo en línea!
fuente
Python 3 , 55 bytes
versiones anteriores
fuente
p=lambda...
? Python no puede manejar lambdas anónimas recursivas, por lo que si necesita que se nombre su función, debe ser parte de su solución, y la asignación de nombres cuenta para su recuento de bytes para desafíos de código de golf.Python 3 , 47 bytes
Pruébalo en línea!
fuente
Brain-Flak , 161 bytes
Incluye +1 para
-r
Pruébalo en línea!
El ejemplo
[3, 4, 2]
lleva más de 60 segundos, por lo que utiliza el enlace TIO[4, 3, 2]
.Se
-r
puede eliminar si la entrada se puede tomar en orden inverso para un recuento de bytes de 160.fuente
Pari / GP , 32 bytes
Pruébalo en línea!
fuente
Z80Golf , 36 bytes
Pruébalo en línea!
Arnés de prueba de fuerza bruta
Toma la entrada como bytes sin procesar. Limitado a 2 ** 8-1.
Explicación
fuente
Rubí ,
2420 bytesPruébalo en línea!
fuente