आपको अभी-अभी गणित के प्रोफेसर की नौकरी मिली है। आपका पहला सप्ताह अच्छा गुज़रा, लेकिन दूसरे सप्ताह में कुछ गड़बड़ है। समस्या यह है कि आपके विद्यार्थियों द्वारा दिया गया हर उत्तर गलत है! सौभाग्य से, आपके गणित के कौशल से आप यह पहचान पाए कि असली दिक्कत कहाँ है: विद्यार्थियों के उत्तर वास्तव में सही हैं, लेकिन वे सब आधार 2 (बाइनरी) में हैं! हैरानी की बात यह है कि हर सप्ताह विद्यार्थी कोई अलग आधार इस्तेमाल करते हैं। इसके लिए कि आप विद्यार्थियों के उत्तर जल्दी जाँच सकें, आप एक टूल बनाएँगे जो संख्याओं को एक आधार से दूसरे आधार में बदल देता है।
एक आधार में लिखे अंकों के क्रम को, जो एक संख्या दर्शाता है, दूसरे आधार के अंकों के क्रम में बदलिए, जो वही संख्या दर्शाता है।
इस रूपांतरण को खुद लागू करने की कोशिश कीजिए। रूपांतरण करने के लिए किसी और चीज़ का इस्तेमाल न कीजिए।
स्थानीय मान पद्धति में 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⁰)
हाँ। ऊपर लिखी ये तीनों संख्याएँ बिल्कुल एक ही हैं। बधाई हो!
जब इनपुट अमान्य हो, तब इनमें से कोई एक स्ट्रिंग (बिल्कुल इन्हीं शब्दों में) फेंकिए:
"input base must be >= 2""output base must be >= 2""all digits must satisfy 0 <= d < input base"ऋणात्मक संख्याओं का समर्थन नहीं है।
Exercism पर साइन अप कीजिए और Factor को 47 कॉन्सेप्ट163 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।