चुनौतियों पर वापस जाएँ
आसान 0 हल किए गए 0% स्वीकृति

शतरंज की बिसात पर दाने दुगुना करना

किसी वर्ग के दानों की संख्या और सभी 64 वर्गों का कुल योग ज्ञात करें।

आप क्या सीखेंगे

  • दो की घात से दोगुना होना निकालना
  • गुणोत्तर श्रेणी का योग करना
  • 64-बिट सीमा के पास के मानों के साथ काम करना

समस्या

वर्ग 1 पर एक दाना रखा है। प्रत्येक अगले वर्ग पर पिछले वर्ग से दाने दुगुने रखे जाते हैं। मांगे गए वर्ग पर दानों की संख्या और वर्ग 1 से 64 तक के कुल दानों की संख्या दोनों लौटाएँ। प्रत्येक संख्या को दशमलव पाठ (decimal text) के रूप में लिखें, क्योंकि बोर्ड का कुल योग signed 64-bit integer से बड़ा है।

chessboard_grains(square) लागू करें।

इनपुट

square: मांगा गया वर्ग, जिसकी गिनती 1 से शुरू होती है।

आउटपुट

दो दशमलव स्ट्रिंग लौटाएँ: [मांगे गए वर्ग पर दानों की संख्या, सभी 64 वर्गों पर कुल दानों की संख्या]।

सीमाएँ

1 ≤ square ≤ 64। आउटपुट स्ट्रिंग्स में केवल दशमलव अंक हों, कोई कॉमा, स्पेस या अग्रणी शून्य (leading zeros) नहीं होने चाहिए।

उदाहरण

उदाहरण 1
इनपुट:
square = 6

अपेक्षित आउटपुट:
expected = ["32", "18446744073709551615"]
इनपुट:
long long square = 6;

अपेक्षित आउटपुट:
std::vector<std::string> expected = {"32", "18446744073709551615"};
इनपुट:
long square = 6;

अपेक्षित आउटपुट:
string[] expected = new string[] {"32", "18446744073709551615"};

व्याख्या

पहले छह वर्गों पर दाने क्रमशः 1, 2, 4, 8, 16, 32 हैं। बोर्ड का कुल योग 1 + 2 + … + 2⁶³ = 2⁶⁴ − 1 है।

उदाहरण 2
इनपुट:
square = 1

अपेक्षित आउटपुट:
expected = ["1", "18446744073709551615"]
इनपुट:
long long square = 1;

अपेक्षित आउटपुट:
std::vector<std::string> expected = {"1", "18446744073709551615"};
इनपुट:
long square = 1;

अपेक्षित आउटपुट:
string[] expected = new string[] {"1", "18446744073709551615"};

व्याख्या

पहले वर्ग पर 1 दाना रखा है। दूसरा आउटपुट हमेशा सभी 64 वर्गों के लिए होता है, केवल मांगे गए वर्ग तक के लिए नहीं।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

हर square previous square से double होता है, इसलिए requested count सिर्फ उसकी position पर depend करता है।

संकेत 2

सभी 64 squares का total एक geometric progression है, और यह normal integer limits से बहुत आगे बढ़ जाता है।

संकेत 3

दोनों values plain decimal text में return करो, और ध्यान रहे कि first square one है, zero नहीं।

अपेक्षित जटिलता

समय O(1), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।