কম্পিউটার

n এর চেয়ে বড় সংখ্যা খুঁজে বের করার প্রোগ্রাম যেখানে পাইথনে সমস্ত সংখ্যা কমছে না


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের সবচেয়ে বড় সংখ্যাটি n-এর থেকে ছোট বা সমান খুঁজে বের করতে হবে যেখানে সমস্ত সংখ্যা অ-হ্রাসমান।

সুতরাং, যদি ইনপুট n =221 এর মত হয়, তাহলে আউটপুট হবে 199।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • সংখ্যা :=n-এ সমস্ত সংখ্যা সহ একটি তালিকা
  • বাউন্ড :=শূন্য
  • অঙ্কের পরিসরের আকার - 1 থেকে 0 পর্যন্ত, করুন
    • যদি সংখ্যা[i]
    • বাউন্ড :=i
    • সংখ্যা[i - 1] :=সংখ্যা[i - 1] - 1
  • যদি bound null না হয়, তাহলে
    • অঙ্কের আকারে আবদ্ধ রেঞ্জের জন্য, করুন
      • সংখ্যা[i] :=9
  • একটি সংখ্যা তৈরি করতে প্রতিটি সংখ্যাকে সংখ্যায় যোগ করুন এবং এটি ফেরত দিন
  • আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:

    উদাহরণ কোড

    class Solution:
       def solve(self, n):
          digits = [int(x) for x in str(n)]
          bound = None
          for i in range(len(digits) - 1, 0, -1):
             if digits[i] < digits[i - 1]:
                bound = i
                digits[i - 1] -= 1
             if bound:
                for i in range(bound, len(digits)):
                   digits[i] = 9
             return int("".join(map(str, digits)))
    
    ob = Solution()
    n = 221
    print(ob.solve(n))

    ইনপুট

    221

    আউটপুট

    199

    1. পাইথনে প্রদত্ত সংখ্যার সমস্ত অঙ্কের যোগফল খুঁজে বের করার প্রোগ্রাম

    2. একটি সংখ্যার সমস্ত সংখ্যা এটিকে ভাগ করে কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

    3. একটি তালিকার সমস্ত মান যা পাইথনে প্রদত্ত মানের চেয়ে বেশি তা পরীক্ষা করার জন্য প্রোগ্রাম

    4. পাইথন প্রোগ্রাম একটি তালিকার সমস্ত মান প্রদত্ত মানের চেয়ে বড় কিনা তা পরীক্ষা করতে