কম্পিউটার

পাইথনে বিপরীত পূর্ণসংখ্যা


ধরুন আমাদের একটি 32-বিট স্বাক্ষরিত পূর্ণসংখ্যা সংখ্যা আছে। আমাদের সংখ্যাটি নিতে হবে এবং অঙ্কগুলিকে বিপরীত করতে হবে। সুতরাং সংখ্যাটি যদি 425 এর মত হয়, তাহলে আউটপুট 524 হবে। আরেকটি বিষয় আমাদের মনে রাখতে হবে যে সংখ্যাটি স্বাক্ষরিত, তাই কিছু ঋণাত্মক সংখ্যা থাকতে পারে। সুতরাং সংখ্যাটি যদি –425 হয়, তাহলে সেটি হবে –524।

এখানে আমরা কিছু অনুমান আছে. আমরা ধরে নিয়েছি যে আমরা 32-বিট স্বাক্ষরিত পূর্ণসংখ্যার ডোমেনে ব্যবহার করছি। তাই পরিসীমা হবে [-232 থেকে 232 – 1]। সুতরাং যদি সংখ্যাটি পরিসরে না থাকে, তাহলে ফাংশনটি 0 ফেরত দেবে।

এটি সমাধান করতে, আমরা পাইথন কোড ব্যবহার করব। প্রথমে আমরা প্রদত্ত পূর্ণসংখ্যাকে স্ট্রিং-এ রূপান্তর করব। তাই যদি স্ট্রিং-এর প্রথম অক্ষরটি '-' হয়, তাহলে সংখ্যাটি নেতিবাচক সংখ্যা, তাই সূচক 1 থেকে সূচকের দৈর্ঘ্য - 1-এ উল্টে দিন। এবং অবশেষে ধনাত্মক সংখ্যার জন্য, স্ট্রিংটি উল্টানোর আগে পূর্ণসংখ্যায় রূপান্তর করুন এবং ফিরে আসার আগে এটিকে পূর্ণসংখ্যা করুন। প্রতিটি ক্ষেত্রে আমরা সংখ্যাটি 32-বিট পূর্ণসংখ্যার পরিসরে আছে কিনা তা পরীক্ষা করব। যদি এটি পরিসীমা অতিক্রম করে, তাহলে কেবল 0 ফেরত দিন।

আসুন আরও ভালভাবে বোঝার জন্য বাস্তবায়ন দেখি

উদাহরণ

class Solution(object):
   def reverse(self, x):
      """
      :type x: int
      :rtype: int
      """
      x = str(x)
      if x[0] == '-':
         a = int('-' + x[-1:0:-1])
         if a >= -2147483648 and a<= 2147483647:
            return a
         else:
            return 0
         else:
            a = int(x[::-1])
            if a >= -2147483648 and a<= 2147483647:
               return a
            else:
               return 0
ob1 = Solution()
print(ob1.reverse(-425))

ইনপুট

print(ob1.reverse(-425))

আউটপুট

-524

  1. পাইথনে বিপরীত পূর্ণসংখ্যা

  2. পাইথনে ফ্যাক্টোরিয়াল()

  3. bin() পাইথনে

  4. পাইথন প্রোগ্রাম একটি ইতিবাচক পূর্ণসংখ্যা সংখ্যার বিট বিপরীত?