Вступ:
Голландська BSN (BurgerServiceNummer) діє, якщо вона відповідає таким правилам:
- Він містить лише цифри.
- Довжина повинна бути або 8, або 9.
- Коли цифри проіндексуються як
A
наскрізьI
, результат наступної суми:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(ПРИМІТКА -1 замість 1!) Повинен бути ділений на 11, а не повинен бути 0.
Виклик:
Введення: рядок або масив char, що представляють BSN.
Вихід: truthy або falsey результат вхід є дійсним BSN.
Правила виклику:
- Формат введення повинен бути рядком або масивом char. Вам заборонено використовувати внутрішній масив цифр або (можливо, восьмеричне) число. (Вам дозволено самостійно перетворювати його в цілий масив цифр, але не безпосередньо як аргумент.)
- Незважаючи на обмеження на вхід, вказаний вище, ви можете припустити, що всі тестові випадки будуть містити одну або більше цифр (
[0-9]+
) - Стосовно BSN довжиною 8 замість 9, голландська Вікіпедія констатує наступне: " Для одинадцяти тесту та для інших практичних цілей додається провідний нуль, щоб зробити число довжиною 9. " ( джерело )
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з не кодовими гольф-мовами. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила , тому вам дозволяється використовувати 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
від наведеної формули?