Introdução:
Um BSN holandês (BurgerServiceNummer) é válido quando cumpre as seguintes regras:
- Ele contém apenas dígitos.
- O comprimento deve ter 8 ou 9 de comprimento.
- Quando os dígitos são indexados como
A
completosI
, o resultado da seguinte soma:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(NOTA -1 em vez de 1!) Deve ser divisível por 11 e não deve ser 0.
Desafio:
Entrada: uma sequência ou conjunto de caracteres representando o BSN.
Saída: Um resultado verdadeiro ou falso, se a entrada é um BSN válido.
Regras do Desafio:
- O formato de entrada deve ser uma string ou um conjunto de caracteres. Você não tem permissão para usar uma matriz int de dígitos ou um número (possivelmente octal). (Você tem permissão para convertê-lo em uma matriz int de dígitos, mas não diretamente como argumento.)
- Apesar da restrição na entrada acima, você pode assumir que todos os casos de teste conterão um ou mais dígitos (
[0-9]+
) - Com relação ao BSN com comprimento 8 em vez de 9, a Wikipedia holandesa declara o seguinte: " Para os onze testes e para outros usos práticos, um zero à esquerda é adicionado para fazer o número 9 " ( fonte )
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados, programas completos. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
// Truthy test cases:
111222333
123456782
232262536
010464554
10464554
44016773
// Falsey test cases:
000000000
192837465
247594057
88888888
73
3112223342
000000012
A
a fórmula (ou basicamente adiciona um líder 0
para torná-lo comprimento 9, resultando no mesmo resultado que omitir A
).
A
a fórmula fornecida?