मान लीजिए हमारे पास दो संख्याएं num और k हैं, हमें num में k सन्निकट अंकों का सबसे बड़ा गुणनफल ढूंढना है। हमें ध्यान रखना होगा कि num में k अंक होने की गारंटी है।
उदाहरण के लिए, यदि इनपुट है num = 52689762 और k = 4, तो आउटपुट होगा 3024, 4 लगातार अंकों का सबसे बड़ा गुणनफल (8*9*7*6) = 3024 है।
हल करने के चरण
largest := 0cand := 1- जब तक
(num // 10**(k-1)) > 0:digits := num % 10**kcand := 1- जब तक
digits > 0:cand := cand * (digits % 10)- यदि
cand == 0, तो लूप से बाहर निकलें। digits //= 10
largest := max(largest, cand)num //= 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