परिचय
इस चुनौती में आपका कार्य आईएसबीएन -१३ कोड दिए गए पुस्तकों के लिए आईएसबीएन -१० कोड तैयार करना है, यह मानते हुए कि ऐसा कोड मौजूद है। इस तरह के आईएसबीएन -13 कोड में कई भागों को अलग किया जाता है -
:
978-GG-PPPP-TTT-C
अक्षर G
(समूह), P
(प्रकाशक), T
(शीर्षक) और C
(चेकसम) सभी एक अंक के लिए खड़े होते हैं। इस चुनौती के उद्देश्य के लिए समूहीकरण और C
( इस चुनौती को देखें ) की गणना दिलचस्प नहीं है और हम इस कार्य को सरल बनाने के लिए सभी हाइफ़न को छोड़ देंगे।
एक आईएसबीएन -10 नंबर में एक समान लेआउट है:
GG-PPPP-TTT-c
अक्षर G
, P
और T
13 अंकों के आईएसबीएन के लिए समान हैं, हालांकि c
अलग है (और एक अलग एल्गोरिथ्म का उपयोग करके गणना की जाती है)। अंक c
को इस तरह से चुना जाता है जैसे कि निम्नलिखित समतुल्य धारण (अंक क्रम में):
10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11)
उदाहरण
आइए हम आईएसबीएन संख्या पर विचार करें 9780345391803
: अपने संबंधित आईएसबीएन -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
और इस प्रकार आईएसबीएन -10 कोड है 0345391802
।
नियम
- आपके इनपुट में हमेशा आईएसबीएन -10 नंबर होगा (यानी यह ठीक 13 अंकों का लंबा है और इसके साथ शुरू होता है
978
) - इनपुट के लिए जरूरी नहीं है कि वह एक मान्य आईएसबीएन -13 (उदाहरण के लिए
9780000000002
) हो । - आपको गारंटी है कि परिणामी आईएसबीएन के साथ समाप्त नहीं होगा
X
- आप एक पूर्णांक या स्ट्रिंग के रूप में (हाइफ़न के साथ या बिना) इनपुट ले सकते हैं, हालांकि अंकों की एक पूर्व-सूचीबद्ध सूची की अनुमति नहीं है
- आपका आउटपुट एक मान्य ISBN-10 नंबर होना चाहिए (हाइफ़न के साथ या बिना)
- आपका आउटपुट पूर्णांक या स्ट्रिंग (फिर से अंकों की कोई सूची नहीं) हो सकता है
परीक्षण के मामलों
9780000000002 -> 0000000000
9780201882957 -> 0201882957
9781420951301 -> 1420951300
9780452284234 -> 0452284236
9781292101767 -> 1292101768
9780345391803 -> 0345391802
प्रमुख शून्य पर ध्यान दें!
0-684-84328-5
और99921-58-10-7
, पहला भाग (0
और99921
क्रमशः) पंजीकरण समूह है, दूसरा भाग प्रकाशक है, और इसी तरह।