एक EAN-8 बारकोड की जानकारी और एक 8 वीं चेकसम अंकों के 7 अंक हैं।
चेकसम की गणना अंकों को 3 और 1 से वैकल्पिक रूप से गुणा करके, परिणामों को जोड़कर, और 10 के अगले कई से घटाकर की जाती है।
उदाहरण के लिए, अंक दिए गए 2103498
:
Digit: 2 1 0 3 4 9 8
Multiplier: 3 1 3 1 3 1 3
Result: 6 1 0 3 12 9 24
इन परिणामित अंकों का योग 55 है , इसलिए चेकसम अंक 60 - 55 = 5 है
चुनौती
आपका कार्य 8 अंकों की बारकोड दिया गया है, यह सत्यापित करें कि क्या यह वैध है - यदि चेकसम मान्य है, और अन्यथा गलत है, तो एक सत्य मान लौटाएं।
- आप निम्न में से किसी भी रूप में इनपुट ले सकते हैं:
- एक स्ट्रिंग, लंबाई में 8 वर्ण, बारकोड अंकों का प्रतिनिधित्व करते हैं
- 8 पूर्णांक की एक सूची, बारकोड के अंक
- एक गैर नकारात्मक पूर्णांक (आप या तो प्रमुख शून्य जहां कोई भी दिया जाता है, यह मान सकते हैं यानी
1
=00000001
, यह देखते हुए शून्य के साथ या अनुरोध इनपुट)
- ईएएन -8 चेकसम (यानी, पहले 7 अंक लेने और आखिरी की गणना करने वाले) पर प्रतिबंध लगाने वाले बिल्ड पर प्रतिबंध लगा दिया गया है।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा कार्यक्रम (बाइट्स में) जीतता है!
परीक्षण के मामलों
20378240 -> True
33765129 -> True
77234575 -> True
00000000 -> True
21034984 -> False
69165430 -> False
11965421 -> False
12345678 -> False