Un codice a barre EAN-8 include 7 cifre di informazioni e un'ottava cifra di checksum.
Il checksum viene calcolato moltiplicando alternativamente le cifre per 3 e 1, aggiungendo i risultati e sottraendo dal multiplo successivo di 10.
Ad esempio, date le cifre 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 somma di queste cifre risultanti è 55 , quindi la cifra di checksum è 60 - 55 = 5
La sfida
Il tuo compito è, dato un codice a barre a 8 cifre, verificare se è valido - restituire un valore di verità se il checksum è valido e falsificare diversamente.
- È possibile accettare input in uno dei seguenti modi:
- Una stringa, lunga 8 caratteri, che rappresenta le cifre del codice a barre
- Un elenco di 8 numeri interi, le cifre del codice a barre
- Un numero intero non negativo (puoi assumere zero iniziali dove non ne viene fornito nessuno, ovvero
1
=00000001
, oppure richiedere input con gli zero indicati)
- I builtin che calcolano il checksum EAN-8 (cioè prendono le prime 7 cifre e calcolano l'ultima) sono banditi.
- Questo è code-golf , quindi vince il programma più breve (in byte)!
Casi test
20378240 -> True
33765129 -> True
77234575 -> True
00000000 -> True
21034984 -> False
69165430 -> False
11965421 -> False
12345678 -> False