บทนำ
ในการท้าทายนี้งานของคุณคือการสร้างรหัส ISBN-10 สำหรับหนังสือที่ระบุรหัส ISBN-13 โดยสมมติว่ามีรหัสดังกล่าวอยู่ รหัส ISBN-13 ดังกล่าวประกอบด้วยหลายส่วนโดยคั่นด้วย-
:
978-GG-PPPP-TTT-C
ตัวอักษรG
(กลุ่ม), P
(ผู้เผยแพร่), T
(ชื่อเรื่อง) และC
(เช็คซัม) ทั้งหมดล้วนเป็นเลขตัวเดียว สำหรับจุดประสงค์ของการท้าทายนี้การจัดกลุ่มและการคำนวณC
(ดูความท้าทายนี้ ) ไม่น่าสนใจและเราจะใส่เครื่องหมายยัติภังค์ทั้งหมดเพื่อให้งานนี้ง่ายขึ้น
หมายเลข ISBN-10 มีเค้าโครงคล้ายกันมาก:
GG-PPPP-TTT-c
ตัวอักษรG
, P
และT
เป็นเช่นเดียวสำหรับ 13 หลักเลข ISBN แต่c
จะแตกต่างกัน (และคำนวณโดยใช้ขั้นตอนวิธีการที่แตกต่างกัน) หลักc
ที่ถูกเลือกในลักษณะดังกล่าวที่เท่าเทียมกันต่อไปนี้ถือ (ตัวเลขในการสั่งซื้อ) A:
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
ตัวอย่าง
ขอให้เราพิจารณาจำนวนไอ9780345391803
: เพื่อให้ได้สอดคล้อง ISBN-10 รหัสของเราก็วางชั้นนำ978
และการตรวจสอบผลผลิต3
034539180
ต่อไปเราต้องคำนวณการตรวจสอบใหม่:
10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185
จำนวนถัดไปหารด้วย11
คือ187
ดังนั้นการตรวจสอบใหม่2
จึงทำให้รหัส ISBN-10 ที่เกิด0345391802
ขึ้น
กฎระเบียบ
- ข้อมูลที่คุณป้อนจะมีหมายเลข ISBN-10 ที่ตรงกันเสมอ (เช่นมีความยาว 13 หลักและเริ่มต้นด้วย
978
) - ข้อมูลที่ป้อนไม่จำเป็นต้องเป็น ISBN-13 ที่ถูกต้อง (เช่น
9780000000002
) - คุณรับรองได้ว่า ISBN ที่ได้จะไม่จบลง
X
- คุณอาจรับข้อมูลเป็นจำนวนเต็มหรือสตริง (ไม่ว่าจะมีเครื่องหมายยัติภังค์) แต่ไม่อนุญาตให้ใช้รายการตัวเลขที่คำนวณล่วงหน้า
- ผลลัพธ์ของคุณจะต้องเป็นหมายเลข ISBN-10 ที่ถูกต้อง (มีหรือไม่มีเครื่องหมายขีดคั่น)
- ผลลัพธ์ของคุณอาจเป็นจำนวนเต็มหรือสตริง (ไม่มีรายการของตัวเลข)
Testcases
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
หมายเหตุเลขศูนย์นำหน้า!
0-684-84328-5
และ99921-58-10-7
ส่วนแรก (0
และ99921
ตามลำดับ) คือกลุ่มการลงทะเบียนส่วนที่สองเป็นผู้จัดทำและอื่น ๆ