Pengantar:
BSN Belanda (BurgerServiceNummer) valid ketika mematuhi aturan berikut:
- Hanya berisi digit.
- Panjangnya harus 8 atau 9 panjangnya.
- Ketika digit diindeks
A
melaluiI
, hasil dari jumlah berikut:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(Perhatikan -1 bukannya 1!) Harus habis dibagi 11, dan tidak boleh 0.
Tantangan:
Input: String atau char-array yang mewakili BSN.
Keluaran: Hasil yang benar atau salah apakah input tersebut merupakan BSN yang valid.
Aturan Tantangan:
- Format input harus berupa string atau char-array. Anda tidak diizinkan untuk menggunakan int-array angka, atau nomor (mungkin oktal). (Namun Anda diizinkan untuk mengonversinya menjadi int-array angka, tetapi tidak secara langsung sebagai argumen.)
- Meskipun ada pembatasan pada input di atas, Anda dapat mengasumsikan semua test case akan berisi satu atau lebih digit (
[0-9]+
) - Mengenai BSN dengan panjang 8 dan bukan 9, Wikipedia Belanda menyatakan sebagai berikut: " Untuk uji sebelas dan untuk penggunaan praktis lainnya, nol terkemuka ditambahkan untuk membuat jumlah panjang 9. " ( sumber )
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
// Truthy test cases:
111222333
123456782
232262536
010464554
10464554
44016773
// Falsey test cases:
000000000
192837465
247594057
88888888
73
3112223342
000000012
A
dari rumus (atau pada dasarnya menambahkan sebuah penuntun 0
untuk membuatnya panjang 9, menghasilkan hasil yang sama dengan menghilangkan A
)
A
dari rumus yang diberikan?