মান লো যাক আমাদের দুটি সংখ্যা num এবং k আছে, আমাদের num-এ k দৈর্ঘ্যের সংলগ্ন ডিজিটের সর্বাধিক গুণফল বের করতে হবে। মনে রাখতে হবে num-এ নিশ্চিতভাবে >= k ডিজিট আছে।
উদাহরণস্বরূপ, যদি ইনপুট হয় num = 52689762 এবং k = 4, তবে আউটপুট হবে 3024, ৪টি தொடர tomada ডিজিটের সর্বাধিক গুণফল (8*9*7*6) = 3024।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- largest := 0
- cand := 1
- जब तक (num/10 का भागफल)^(k-1) > 0, करें
- digits := (nums के अंतिम अंक)^k
- cand := 1
- जब तक digits > 0, करें
- cand := cand * (digits mod 10)
- यदि cand, 0 के समान है, तो
- लूप से बाहर निकलें
- digits := digits / 10 का भागफल
- largest := largest और cand का अधिकतम
- num := nums / 10 का भागफल
- largest वापस करें
বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখুন:
উদাহরণ
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