Un code à barres EAN-8 comprend 7 chiffres d'informations et un 8ème chiffre de somme de contrôle.
La somme de contrôle est calculée en multipliant les chiffres par 3 et 1 alternativement, en additionnant les résultats et en soustrayant du multiple de 10 suivant.
Par exemple, étant donné les chiffres 2103498
:
Digit: 2 1 0 3 4 9 8
Multiplier: 3 1 3 1 3 1 3
Result: 6 1 0 3 12 9 24
La somme de ces chiffres résultants est 55 , le chiffre de la somme de contrôle est donc 60 - 55 = 5
Le défi
Votre tâche consiste à vérifier, à l'aide d'un code à barres de 8 chiffres, si celui-ci est valide - à renvoyer une valeur de vérité si la somme de contrôle est valide.
- Vous pouvez prendre des contributions sous l’une des formes suivantes:
- Une chaîne de 8 caractères représentant les chiffres du code à barres
- Une liste de 8 entiers, les chiffres du code à barres
- Un entier non négatif (vous pouvez soit supposer des zéros en tête où aucun n'est donné, c'est-à-dire
1
=00000001
, soit demander une entrée avec les zéros donnés)
- Les fonctions intégrées qui calculent la somme de contrôle EAN-8 (c.-à-d., Prennent les 7 premiers chiffres et calculent le dernier) sont interdites.
- C'est du code-golf , donc le programme le plus court (en octets) gagne!
Cas de test
20378240 -> True
33765129 -> True
77234575 -> True
00000000 -> True
21034984 -> False
69165430 -> False
11965421 -> False
12345678 -> False