ধরুন আমাদের দুটি সংখ্যা আছে num এবং k, আমাদের num-এ k সংলগ্ন অঙ্কের বৃহত্তম গুণফল বের করতে হবে। আমাদের মনে রাখতে হবে যে num-এ>=k সংখ্যা থাকবে।
সুতরাং, যদি ইনপুটটি num =52689762 এবং k =4 এর মত হয়, তাহলে আউটপুট হবে 3024, পরপর 4টি সংখ্যার বৃহত্তম গুণফল হল (8*9*7*6) =3024।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- সবচেয়ে বড় :=0
- cand :=1
- যখন (সংখ্যা/10 এর ভাগফল)^(k-1)> 0, do
- সংখ্যা :=(সংখ্যার শেষ সংখ্যা)^k
- cand :=1
- যখন সংখ্যা> 0, do
- cand :=cand * (ডিজিট মোড 10)
- যদি ক্যান্ড 0 এর মত হয়, তাহলে
- লুপ থেকে বেরিয়ে আসুন
- সংখ্যা :=অঙ্কের ভাগফল / 10
- সবচেয়ে বড় :=বৃহত্তম এবং ক্যান্ডের সর্বোচ্চ
- num :=সংখ্যার ভাগফল / 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