কম্পিউটার টিউটোরিয়াল

পাইথনে সংখ্যার মধ্যে k লেন্থের কন্টিগুয়াস ডিজিটের সর্বাধিক গুণফল বের করার প্রোগ্রাম


মান লো যাক আমাদের দুটি সংখ্যা 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

  1. পাইথনে সর্বোচ্চ ত্রিভুজের এলিয়া (Largest Triangle Area) নির্ণয়

  2. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়ত

  3. পাইথনে Maximum Product Subarray (সর্বাধিক গুণফলযুক্ত সাবঅ্যারে)

  4. পাইথনে সবচেয়ে বড় সংখ্যা