Introduction:
Un BSN néerlandais (BurgerServiceNummer) est valide lorsqu'il respecte les règles suivantes:
- Il ne contient que des chiffres.
- La longueur doit être de 8 ou 9 de long.
- Lorsque les chiffres sont indexés comme à
A
traversI
, le résultat de la somme suivante:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(NOTEz le -1 au lieu de 1!) Doit être divisible par 11 et ne doit pas être 0.
Défi:
Entrée: chaîne ou tableau de caractères représentant le BSN.
Sortie: un résultat vrai ou faux si l'entrée est un BSN valide.
Règles du défi:
- Le format d'entrée doit être une chaîne ou un tableau de caractères. Vous n'êtes pas autorisé à utiliser un int-tableau de chiffres ou un nombre (éventuellement octal). (Vous êtes cependant autorisé à le convertir vous-même en un tableau de chiffres int, mais pas directement en argument.)
- Malgré la restriction de l'entrée ci-dessus, vous pouvez supposer que tous les cas de test contiendront un ou plusieurs chiffres (
[0-9]+
) - En ce qui concerne le BSN de longueur 8 au lieu de 9, Wikipedia néerlandais déclare ce qui suit: " Pour le test à onze et pour d'autres utilisations pratiques, un zéro de tête est ajouté pour faire le nombre de longueur 9. " ( source )
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés, des programmes complets. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
// Truthy test cases:
111222333
123456782
232262536
010464554
10464554
44016773
// Falsey test cases:
000000000
192837465
247594057
88888888
73
3112223342
000000012
A
de la formule (ou ajoute essentiellement un interligne 0
pour lui donner une longueur de 9, ce qui donne le même résultat que l'omission A
).
A
de la formule donnée?