मान लीजिए कि हमारे पास दो संख्याएँ संख्याएँ और k हैं, हमें संख्या में k सन्निहित अंकों का सबसे बड़ा गुणनफल खोजना होगा। हमें यह ध्यान रखना होगा कि num>=k अंक होने की गारंटी है।
इसलिए, यदि इनपुट संख्या =52689762 और k =4 जैसा है, तो आउटपुट 3024 होगा, लगातार 4 अंकों का सबसे बड़ा उत्पाद (8*9*7*6) =3024 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- सबसे बड़ा :=0
- कैंडी:=1
- जबकि (संख्या/10 का भागफल)^(k-1)> 0, करें
- अंक :=(अंकों का अंतिम अंक)^k
- कैंडी:=1
- जबकि अंक> 0, करते हैं
- cand :=cand * (अंक 10 मॉड)
- यदि कैंडी 0 के समान है, तो
- लूप से बाहर आएं
- अंक:=अंकों का भागफल / 10
- सबसे बड़ा :=अधिकतम अधिकतम और सबसे बड़ा
- संख्या:=अंकों का भागफल / 10
- सबसे बड़ा रिटर्न
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, num, k): largest = 0 while num // 10 ** (k - 1) > 0: digits = num % 10 ** k cand = 1 while digits > 0: cand *= digits % 10 if cand == 0: break digits //= 10 largest = max(largest, cand) num //= 10 return largest ob = Solution() num = 52689762 k = 4 print(ob.solve(num,k))
इनपुट
52689762, 4
आउटपुट
3024