All Your Base

All Your Base

मध्यम

परिचय

आपको अभी-अभी गणित के प्रोफेसर की नौकरी मिली है। आपका पहला सप्ताह अच्छा गुज़रा, लेकिन दूसरे सप्ताह में कुछ गड़बड़ है। समस्या यह है कि आपके विद्यार्थियों द्वारा दिया गया हर उत्तर गलत है! सौभाग्य से, आपके गणित के कौशल से आप यह पहचान पाए कि असली दिक्कत कहाँ है: विद्यार्थियों के उत्तर वास्तव में सही हैं, लेकिन वे सब आधार 2 (बाइनरी) में हैं! हैरानी की बात यह है कि हर सप्ताह विद्यार्थी कोई अलग आधार इस्तेमाल करते हैं। इसके लिए कि आप विद्यार्थियों के उत्तर जल्दी जाँच सकें, आप एक टूल बनाएँगे जो संख्याओं को एक आधार से दूसरे आधार में बदल देता है।

निर्देश

एक आधार में लिखे अंकों के क्रम को, जो एक संख्या दर्शाता है, दूसरे आधार के अंकों के क्रम में बदलिए, जो वही संख्या दर्शाता है।

Note

इस रूपांतरण को खुद लागू करने की कोशिश कीजिए। रूपांतरण करने के लिए किसी और चीज़ का इस्तेमाल न कीजिए।

स्थानीय मान पद्धति के बारे में

स्थानीय मान पद्धति में b आधार वाली किसी संख्या को b की घातों के रैखिक संयोजन के रूप में समझा जा सकता है।

संख्या 42, आधार 10 में, का अर्थ है:

(4 × 10¹) + (2 × 10⁰)

संख्या 101010, आधार 2 में, का अर्थ है:

(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)

संख्या 1120, आधार 3 में, का अर्थ है:

(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)

हाँ। ऊपर लिखी ये तीनों संख्याएँ बिल्कुल एक ही हैं। बधाई हो!

कार्यान्वयन

मान्यताएँ:

  1. आउटपुट में शून्य को हमेशा [] के बजाय [0] के रूप में दर्शाया जाता है।
  2. किसी और स्थिति में आउटपुट में शुरुआती शून्य नहीं होते।
  3. इनपुट में शुरुआती शून्य स्वीकार किए जाते हैं।
  4. इनपुट अंकों के खाली क्रम को एरर नहीं, बल्कि शून्य माना जाता है।

समस्या वाले मामलों को संभालने के लिए एक एरर लौटाइए जिसका Error() मेथड इनमें से कोई एक संदेश लौटाता है:

  • input base must be >= 2
  • output base must be >= 2
  • all digits must satisfy 0 <= d < input base
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Go Exercism

All Your Base शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।