কম্পিউটার

পাইথনে রোমান সংখ্যাকে পূর্ণসংখ্যাতে রূপান্তর করার প্রোগ্রাম?


ধরুন আমাদের একটি রোমান সংখ্যা আছে; আমাদের এটিকে সংখ্যায় রূপান্তর করতে হবে। আমরা জানি যে একটি রোমান সংখ্যা বাম থেকে ডানে সর্বশ্রেষ্ঠ থেকে সর্বনিম্ন পর্যন্ত প্রতীক দ্বারা প্রতিনিধিত্ব করা হয়, একমাত্র ব্যতিক্রম যখন একটি প্রতীকের চেয়ে কম প্রতিনিধিত্ব করে। কিছু রোমান সংখ্যাসূচক চিহ্নের অর্থ নিম্নরূপ:

  • 'M':1000

  • 'ডি':500

  • 'সি':100

  • 'L':50

  • 'X':10

  • 'V':5

  • 'আমি':1

সুতরাং, যদি ইনপুটটি সংখ্যা ="MCLXVI" এর মত হয়, তাহলে আউটপুট হবে 1166, যেমন M =1000, C =100, মোট হল 1100, তারপর L =50, X =10, VI =6 তাই মোট হল 1166।

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

উপরে উল্লিখিত হিসাবে সংখ্যা তালিকা নিন

  • উত্তর :=0

  • n :=সংখ্যার আকার

  • প্রতিটি সূচক idx এবং মান c সংখ্যার জন্য, করুন

    • যদি idx

      • উত্তর :=উত্তর - d[c]

    • অন্যথায়,

      • ans :=ans + d[c]

  • উত্তর ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, numeral):
      d = {"M": 1000, "D": 500, "C": 100, "L": 50, "X": 10, "V": 5, "I": 1}
      ans = 0
      n = len(numeral)
      for (idx, c) in enumerate(numeral):
         if idx < n - 1 and d[c] < d[numeral[idx + 1]]:
            ans -= d[c]
         else:
            ans += d[c]
      return ans

ob = Solution()
numeral = "MCLXVI"
print(ob.solve(numeral))

ইনপুট

"MCLXVI"

আউটপুট

1166

  1. পাইথন প্রোগ্রাম কিলোমিটারকে মাইলে রূপান্তর করতে

  2. হেক্স স্ট্রিংকে দশমিকে রূপান্তর করতে পাইথন প্রোগ্রাম

  3. পাইথনে ফ্লোটকে পূর্ণসংখ্যাতে কীভাবে রূপান্তর করবেন?

  4. পাইথনে একটি পূর্ণসংখ্যাকে একটি অক্ষরে কীভাবে রূপান্তর করবেন?