前書き:
オランダのBSN(BurgerServiceNummer)は、次の規則に準拠している場合に有効です。
- 数字のみが含まれます。
- 長さは8または9でなければなりません。
- 数字が
A
through としてインデックス付けされている場合、I
次の合計の結果:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(1ではなく-1に注意してください!)11で割り切れるはずであり、0であってはなりません。
チャレンジ:
入力: BSNを表す文字列または文字配列。
出力:truthyまたはfalsey入力が有効BSNであるかどうかの結果。
チャレンジルール:
- 入力形式は文字列または文字配列でなければなりません。整数のint配列、または(おそらく8進数の)数値を使用することはできません。(ただし、直接引数としてではなく、自分で数字の整数配列に変換できます。)
- 上記の入力には制限がありますが、すべてのテストケースに1つ以上の数字(
[0-9]+
)が含まれると想定できます。 - 長さ8の代わりに9とBSNについて、オランダのウィキペディアは、以下の状態:「11・テストのため及び他の実用的な用途のために、長さ9の数を作るために添加される先行ゼロ」(ソース)
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、必要に応じて説明を追加してください。
テストケース:
// Truthy test cases:
111222333
123456782
232262536
010464554
10464554
44016773
// Falsey test cases:
000000000
192837465
247594057
88888888
73
3112223342
000000012
A
式から省略します(または基本的に0
それを長さ9にするために先頭を追加して、省略したのと同じ結果になりますA
)。
A
与えられた式から1つが省略されるのは本当ですか?