Pour une liste donnée de nombres trouvez le dernier chiffre de Exemple:x x x … x n 3 2 1
[3, 4, 2] == 1
[4, 3, 2] == 4
[4, 3, 1] == 4
[5, 3, 2] == 5
Parce que .
Parce que .
Parce que .
Parce que .
Règles:
C'est le golf de code, donc la réponse avec le moins d'octets gagne.
Si votre langue a des limites sur la taille entière (ex. ) n sera suffisamment petit pour que la somme tienne dans l'entier.
L'entrée peut être de n'importe quelle forme raisonnable (stdin, fichier, paramètre de ligne de commande, entier, chaîne, etc.).
La sortie peut être de n'importe quelle forme raisonnable (stdout, fichier, élément utilisateur graphique qui affiche le nombre, etc.).
Vu sur les guerres de code.
number
art. Voulez-vous dire des entiers positifs exclusivement? C'est ainsi que je ressens comment cela a été interprété.[999999,213412499,34532599,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
est valide et le résultat devrait être1
Si c'est le cas, cela doit être clarifié dans la question car vous avez voté des réponses qui ne résolvent pas cela (indice - déplacez l'mod
intérieur de la boucle). Ajoutez peut-être quelques exemples qui rendent cela clair.9
. Le schéma de réduction des chiffres nécessaire pour le mettre en œuvre est beaucoup plus intéressant que les réponses réelles à ce problème.Réponses:
JavaScript (ES7), 22 octets
Limité à .253- 1
Essayez-le en ligne!
la source
**
est l'opérateur d'exponentiation de JavaScript. Le reste est assez simple.a.join`**`
est équivalenta.join(['**'])
et['**']
contraint'**'
par lajoin
méthode.n % 10
retournera le dernier chiffre den
R , 25 octets
Essayez-le en ligne!
la source
Reduce
être utilisé.Haskell, 19 octets
Essayez-le en ligne!
la source
HP 49G RPL, 36,5 octets
Exécutez-le en mode APPROX (mais entrez le programme en mode EXACT). Prend des entrées sur la pile avec le premier élément le plus profond de la pile, sous forme d'entiers ou de réels.
Il expose simplement sur la pile comme dans la solution de Sophia jusqu'à ce qu'il reste une valeur, puis prend le mod 10 pour obtenir le dernier chiffre.
La raison pour laquelle j'utilise APPROX pour le calcul est parce que 0,0 ^ 0,0 = 1 (quand ils sont tous les deux réels), mais 0 ^ 0 =? (quand ils sont tous les deux des entiers). APPROX contraint tous les entiers en réels, donc l'entrée est correcte avec l'un ou l'autre. Cependant, j'utilise EXACT pour entrer dans le programme parce que 10 (entier) est stocké chiffre par chiffre, et est de 6,5 octets, mais 10,0 (réel) est stocké en tant que nombre réel complet et est de 10,5 octets. J'évite également d'utiliser la réduction de RPL (appelée STREAM) car elle introduit un objet programme supplémentaire, qui représente 10 octets de surcharge. J'en ai déjà un et je n'en veux pas d'autre.
Limité à la précision d'un HP 49G réel (12 chiffres décimaux)
-10 octets après la liste vide -> 1 exigence a été supprimée.
-2 octets en prenant l'entrée sur la pile.
la source
dc ,
1715 octetsEssayez-le en ligne!
Prend des entrées de la pile, des sorties vers la pile. Implémentation très simple - exponentiates jusqu'à ce qu'il ne reste qu'une valeur sur la pile et mod pour le dernier chiffre.
Merci à brhfl pour avoir économisé deux octets!
la source
10%
enA%
, et un octet de plus en ne vérifiant pas la profondeur de la pile deux fois - il suffit de mettre un1
sommet de la pile avant d'exécuter depuis n ^ 1 == n:1[^z1<M]dsMxA%
A
comme littéral tout en étant réglé sur une entrée décimale. Merci @brhfl!J , 5 octets
-3 octets grâce à Cole!
Essayez-le en ligne!
la source
10|^/
ne marche pas?05AB1E , 4 octets
Essayez-le en ligne!
Explication
la source
E
dans l'en-tête)..V
..«mθ
ressemble plus à un extrait, car, en soi, vous ne pouvez pas l'affecter à une variable pour une réutilisation ultérieure. Eh bien, Adnan a maintenant résolu le problème, mais hein.Pure Bash (intégrés uniquement - pas d'utilitaires externes), 21
L'entrée est donnée sur la ligne de commande sous la forme d'une liste séparée par des virgules.
Les entiers bash sont soumis à des limites entières signées normales pour les versions 64 et 32 bits.
Essayez-le en ligne!
la source
^
est XOR au niveau du bit, c'est pourquoi vous5
sortez du cas de test au lieu du correct1
. Vous devrez ajouter un octet pour basculer vers**
^
s'est glissé - j'avais eu**
dans les précédentes itérations de mon cycle de développement.Wolfram Language (Mathematica) , 16 octets
Essayez-le en ligne!
la source
Python 2 et Python 3 , 30 octets
Essayez-le en ligne!
L'entrée
N
devrait être un objet itérable sur des représentations de chaînes de littéraux numériques .la source
Rubis,
4147 octetsAugmentation de la taille en raison de la gestion de tout 0 dans le tableau d'entrée, ce qui nécessite une attention supplémentaire. Grâce à
rewritten
Cela est résolu car je pense que la source d'origine était destinée, c'est-à-dire pour les très grandes exponentiations qui ne rentreront pas dans les entiers natifs de la langue - la restriction est que le tableau résumera
2**32-1
, et non que les calculs intermédiaires sont également garantis. En fait, cela semble être le but du défi sur Code Wars. Bien que les entiers natifs de Ruby puissent devenir assez gros, ils ne peuvent pas faire face à l'exemple ci-dessous traité naïvement avec un% 10 à la finPar exemple
Contribution:
[999999,213412499,34532597,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
Production:
9
la source
n**(t%4+4)
parn**((t-1)%4+1)
ainsi vous obtenezn**1
au lieu den**5
etc. Bravo pour l'observation qu'à tout stade 4 serait un bon cycle.n<2?n:
avantn**
.05AB1E , 8 octets
Essayez-le en ligne!
la source
...gGm}10%
(ou quelque chose de golfeur).Perl 6 , 14 octets
Essayez-le en ligne!
Utilise les méta crochets de réduction avec l'opérateur **, modulo 10.
la source
APL (Dyalog Unicode) , 5 octets
Essayez-le en ligne!
la source
C # (.NET Core) , 84 octets
Essayez-le en ligne!
la source
a
et en combinant la condition de boucle avec la décrémentation (for(var i=a.Lengt-1;i-->0;)
). Mais lausing
déclaration doit être incluse dans le nombre d'octets.C (gcc) , 56
Fonction récursive
r()
appelée depuis la macrof
- les limites de pile normales s'appliquent.Entrée donnée sous la forme d'un tableau int à terminaison zéro. Ceci sous l'hypothèse qu'aucun des x n n'est nul.
Essayez-le en ligne!
la source
) r(
->)r(
.r(int*n){return pow
au golfR;r(int*n){R=pow
.Julia 0,6 , 30 octets
Essayez-le en ligne!
Il s'agit d'une fonction anon
∘ est l'opérateur de composition.
Il s'agit de plusieurs octets
la source
Japt
-h
, 7 octetsEssayez-le en ligne!
Explication:
la source
Japt
-h
,76 octetsSi l'entrée peut être prise dans l'ordre inverse, le premier caractère peut être supprimé.
Limité à
2**53-1
.Essayez-le
Explication
la source
Gelée , 6 octets
Essayez-le en ligne!
la source
Python 2 ,
4543 octetsEssayez-le en ligne!
la source
Excel VBA, 60 octets
Une fonction de fenêtre immédiate VBE anonyme qui prend l'entrée de la plage
[A1:XFD1]
la source
Stax , 7 octets
Exécuter et déboguer
Algorithme comme dans ma réponse Python
la source
CJam , 14 octets
Devrait fonctionner pour n'importe quelle entrée, car CJam n'est pas limité aux entiers 64 bits
Essayez-le en ligne!
la source
Python 3 , 55 octets
Versions plus anciennes
la source
p=lambda...
? Python ne peut pas gérer les lambdas anonymes récursifs, donc si vous avez besoin que votre fonction soit nommée, elle doit faire partie de votre solution, et la dénomination compte pour votre nombre d'octets pour les défis de code-golf.Python 3 , 47 octets
Essayez-le en ligne!
la source
Brain-Flak , 161 octets
Comprend +1 pour
-r
Essayez-le en ligne!
L'exemple
[3, 4, 2]
prend plus de 60 secondes, donc la liaison TIO utilise[4, 3, 2]
.Le
-r
peut être supprimé si l'entrée peut être prise dans l'ordre inverse pour un nombre d'octets de 160.la source
Pari / GP , 32 octets
Essayez-le en ligne!
la source
Z80Golf , 36 octets
Essayez-le en ligne!
Harnais de test de force brute
Prend l'entrée en octets bruts. Limité à 2 ** 8-1.
Explication
la source
Rubis ,
2420 octetsEssayez-le en ligne!
la source