कोड-गोल्फ प्रोग्राम लिखते समय , मैं आमतौर पर कुछ संख्यात्मक स्थिरांक का उपयोग करता हूं। मैंने हमेशा उन्हें दशमलव में रखा, क्योंकि मैं यही सोचता हूं, लेकिन मुझे सिर्फ यह एहसास हुआ कि मेरी भाषा अन्य संख्या स्वरूपों का समर्थन करती है जो शायद मुझे अपना कोड थोड़ा छोटा करने दें।
चुनौती
2 ^ 53-1 से कम के गैर-नकारात्मक पूर्णांक को देखते हुए, यह तय करें कि क्या पूर्णांक में सबसे कम प्रतिनिधित्व है:
- दशमलव
- हेक्साडेसिमल
- वैज्ञानिक संकेत
दशमलव
चूंकि यह मेरी भाषा का डिफ़ॉल्ट प्रारूप है, इसलिए इस प्रारूप के लिए किसी अतिरिक्त अंकन की आवश्यकता नहीं है। हर संख्या को दशमलव के लिए हमेशा की तरह दर्शाया गया है।
हेक्साडेसिमल
मेरी भाषाएं 0x
हेक्साडेसिमल स्थिरांक के लिए उपसर्ग का उपयोग करती हैं । इसका मतलब यह है कि यदि किसी संख्या में 4 हेक्साडेसिमल अंक हैं, तो उस संख्या का प्रतिनिधित्व करने के लिए 6 बाइट्स लगेंगे।
वैज्ञानिक संकेत
मेरी भाषा वैज्ञानिक संकेतन के लिए निम्नलिखित प्रारूप का उपयोग करती है:
[वास्तविक आधार] ई [१० का पूर्णांक करनेवाला]
उदाहरण के लिए, के 700
रूप में प्रतिनिधित्व किया जाएगा 7e3
, और के 699
रूप में प्रतिनिधित्व किया जाएगा 6.99e3
, क्योंकि आधार -10 और 10 (गैर-समावेशी) के बीच होना चाहिए । इस चुनौती के प्रयोजनों के लिए, आधार हमेशा कम से कम 0 होगा, क्योंकि इनपुट संख्या गैर-नकारात्मक है।
उत्पादन
आपको यह पहचानने का एक तरीका लौटाना चाहिए कि कौन सा प्रारूप सबसे छोटा है (यानी दशमलव के लिए 0, हेक्स के लिए 1, वैज्ञानिक के लिए 2)। वैकल्पिक रूप से, आप स्वयं संख्या का सबसे छोटा प्रतिनिधित्व आउटपुट कर सकते हैं।
परीक्षण के मामलों
Decimal | Hexadecimal | Scientific | Winner
--------------|--------------|-------------------|-------------
0 | 0x0 | 0e0 | Decimal
15 | 0xF | 1.5e1 | Decimal
6999 | 0x1B57 | 6.999e3 | Decimal
7000 | 0x1B58 | 7e3 | Scientific
1000000000000 | 0xE8D4A51000 | 1e12 | Scientific
1000000000001 | 0xE8D4A51001 | 1.000000000001e12 | Hexadecimal
1000000001000 | 0xE8D4A513E8 | 1.000000001e12 | Hexadecimal
1000001000000 | 0xE8D4B45240 | 1.000001e12 | Scientific
स्कोरिंग
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा के लिए सबसे कम बाइट्स में उत्तर जीतता है।
double
। केवल एक सलाह; जैसा कि आप फिट देखते हैं
1000001000000
1000001e6
हालांकि यह भी लिखा जा सकता है ।
2^63-1
कुछ भाषाओं के लिए मुश्किल हो सकती है। आराम करने पर विचार करें कि कम मूल्य पर जैसे2^32-1
(इसलिए मान एक डबल फ़्लोटिंग पॉइंट डेटा प्रकार में फिट होते हैं)