Um código de barras EAN-8 inclui sete dígitos de informações e um oitavo dígito de soma de verificação.
A soma de verificação é calculada multiplicando os dígitos por 3 e 1 alternadamente, adicionando os resultados e subtraindo o próximo múltiplo de 10.
Por exemplo, dados os dígitos 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
A soma desses dígitos resultantes é 55 , portanto, o dígito da soma de verificação é 60 - 55 = 5
O desafio
Sua tarefa é, com um código de barras de 8 dígitos, verificar se é válido - retornando um valor verdadeiro se a soma de verificação for válida e, caso contrário, falsificar.
- Você pode receber informações de qualquer uma das seguintes formas:
- Uma cadeia de caracteres com 8 caracteres, representando os dígitos do código de barras
- Uma lista de 8 números inteiros, os dígitos do código de barras
- Um número inteiro não negativo (você pode assumir zeros à esquerda onde nenhum é dado, ou seja ,
1
=00000001
, ou solicitar entrada com os zeros dados)
- Os componentes internos que calculam a soma de verificação EAN-8 (ou seja, pegam os 7 primeiros dígitos e calculam os últimos) são banidos.
- Isso é código-golfe , então o programa mais curto (em bytes) vence!
Casos de teste
20378240 -> True
33765129 -> True
77234575 -> True
00000000 -> True
21034984 -> False
69165430 -> False
11965421 -> False
12345678 -> False