บทนำ:
Dutch BSN (BurgerServiceNummer) ใช้ได้เมื่อปฏิบัติตามกฎต่อไปนี้:
- มันมีตัวเลขเท่านั้น
- ความยาวควรมีความยาว 8 หรือ 9
- เมื่อตัวเลขถูกทำดัชนีว่า
A
ผ่านI
ผลลัพธ์ของการรวมดังต่อไปนี้:9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI
(หมายเหตุ -1 แทนที่จะเป็น 1!) ควรหารด้วย 11 และไม่ควรเป็น 0
ท้าทาย:
อินพุต:สตริงหรืออักขระที่แทน BSN
ผลลัพธ์: ผลลัพธ์ที่เป็นจริงหรือเท็จไม่ว่าอินพุตจะเป็น BSN ที่ถูกต้อง
กฏท้าทาย:
- รูปแบบอินพุตควรเป็นสตริงหรือ char-array คุณไม่ได้รับอนุญาตให้ใช้จำนวนเต็มหรือตัวเลข (อาจแปด) (คุณได้รับอนุญาตให้แปลงเป็นตัวเลขภายในด้วยตัวคุณเอง แต่ไม่ใช่อาร์กิวเมนต์โดยตรง)
- แม้จะมีข้อ จำกัด ในการป้อนข้อมูลข้างต้นคุณสามารถสมมติว่ากรณีทดสอบทั้งหมดจะมีหนึ่งหรือมากกว่าหนึ่งหลัก (
[0-9]+
) - เกี่ยวกับ BSN ที่มีความยาว 8 แทนที่จะเป็น 9 วิกิพีเดียภาษาดัตช์จะกล่าวต่อไปนี้: " สำหรับการทดสอบสิบเอ็ดครั้งและสำหรับการใช้งานในทางปฏิบัติอื่น ๆ จะมีการเพิ่มศูนย์นำหน้าเพื่อทำให้จำนวนความยาว 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
จากสูตรที่ให้ไว้?