समस्या
n के अंकों को बाईं ओर से 1 से गिनें। हर अंक को उसकी स्थिति के घात में उठाएँ और सभी परिणामों को जोड़ें। उदाहरण के लिए, 352 के लिए यह होगा 3¹ + 5² + 2³। यदि कोई अंक 0 है तो वह 0 ही जोड़ता है।
digit_power_sum(n) को लागू करें।
इनपुट
n: एक धनात्मक पूर्णांक।
आउटपुट
घात में उठाए गए अंकों का योग लौटाएँ।
सीमाएँ
1 ≤ n ≤ 1,000,000,000
उदाहरण
इनपुट:
n = 352
अपेक्षित आउटपुट:
expected = 36
इनपुट:
long long n = 352;
अपेक्षित आउटपुट:
long long expected = 36;
इनपुट:
long n = 352;
अपेक्षित आउटपुट:
long expected = 36;
व्याख्या
3¹ + 5² + 2³ = 3 + 25 + 8 = 36।
इनपुट:
n = 89
अपेक्षित आउटपुट:
expected = 89
इनपुट:
long long n = 89;
अपेक्षित आउटपुट:
long long expected = 89;
इनपुट:
long n = 89;
अपेक्षित आउटपुट:
long expected = 89;
व्याख्या
8¹ + 9² = 8 + 81 = 89, जो कि संख्या स्वयं है।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
संख्या को बाएँ से दाएँ अंक-दर-अंक स्कैन करें और हर अंक की स्थिति ट्रैक करें।
संकेत 2
संख्या को string में बदलें या हर digit को position से जोड़ने से पहले बाएँ-से-दाएँ index पता रखें।
संकेत 3
ध्यान रखें कि 0 का योगदान शून्य है, लेकिन exponent count में उसकी position फिर भी मायने रखती है।
अपेक्षित जटिलता
समय O(d), अतिरिक्त स्थान O(1)