Introduzione:
Un BSN olandese (BurgerServiceNummer) è valido quando è conforme alle seguenti regole:
- Contiene solo cifre.
- La lunghezza dovrebbe essere di 8 o 9 di lunghezza.
- Quando le cifre sono indicizzate come
A
attraversoI
, il risultato della seguente somma:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(NOTA -1 anziché 1!) Dovrebbe essere divisibile per 11 e non dovrebbe essere 0.
Sfida:
Input: una stringa o char-array che rappresenta il BSN.
Uscita: Un truthy o Falsey risultato se l'input è un BSN valida.
Regole della sfida:
- Il formato di input dovrebbe essere una stringa o un char-array. Non ti è permesso usare un int-array di cifre o un numero (possibilmente ottale). (Tuttavia, ti è permesso convertirlo in un int-array di cifre, ma non direttamente come argomento.)
- Nonostante la restrizione sull'input precedente, puoi presumere che tutti i casi di test conterranno una o più cifre (
[0-9]+
) - Per quanto riguarda la BSN con lunghezza 8 anziché 9, la Wikipedia olandese afferma quanto segue: " Per gli undici test e per altri usi pratici, viene aggiunto uno zero iniziale per fare il numero della lunghezza 9. " ( fonte )
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi test:
// Truthy test cases:
111222333
123456782
232262536
010464554
10464554
44016773
// Falsey test cases:
000000000
192837465
247594057
88888888
73
3112223342
000000012
A
dalla formula (o fondamentalmente aggiunge un vantaggio 0
per renderlo di lunghezza 9, con lo stesso risultato dell'omissione A
).
A
dalla formula fornita?