Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में पूर्णांक को रोमन अंक में बदलने का कार्यक्रम

मान लीजिए कि हमारे पास एक संख्या संख्या है। हमें इसे इसके समकक्ष रोमन अंक में बदलना होगा। रोमन अंकों में नीचे दिए गए प्रतीक और मान होते हैं -

  • "मैं" =1
  • "वी" =5
  • "X" =10
  • "एल" =50
  • "सी" =100
  • "डी" =500
  • "एम" =1000

इन प्रतीकों को आम तौर पर सबसे बड़े से सबसे छोटे, और बाएं से दाएं क्रम में लिखा जाता है, और सभी प्रतीकों के मूल्यों को जोड़कर गणना की जा सकती है। लेकिन कुछ विशेष मामले हैं, जहां कम मूल्य का प्रतीक उच्च मूल्य के प्रतीक के बाईं ओर है, इसका संकेत है कि निम्न मूल्य को उच्च मूल्य से घटाया जाता है।

ये ऐसे मामलों के उदाहरण हैं -

  • "I" "V" से पहले है, मान 4।
  • "I" "X" से पहले है, मान 9.
  • "X" "L" से पहले है, मान 40.
  • "X" "C" से पहले है, मान 90.
  • "C" "D" से पहले है, मान 400.
  • "C" "M" से पहले है, मान 900।

रोमन अंकों में भी कुछ नियम हैं -

  • कोई भी प्रतीक 3 बार से अधिक दोहराया नहीं जाता है।
  • चिह्न "V", "L", और "D" दोहराए नहीं जाते हैं।

इसलिए, यदि इनपुट n =1520 जैसा है, तो आउटपुट "MDXX" होगा, क्योंकि "MDXX" 1000 + 500 + 10 + 10 =1520 इंगित करता है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • res:=रिक्त स्ट्रिंग
  • तालिका =इस प्रारूप में जोड़े (वैल, प्रतीक) वाली एक सूची, जहां वैल मूल्य है और प्रतीक संबद्ध प्रतीक है [(1000, "एम"), (900, "सीएम"), (500, " डी"), (400, "सीडी"), (100, "सी"), (90, "एक्ससी"), (50, "एल"), (40, "एक्सएल"), (10, "एक्स" ), (9, "IX"), (5, "V"), (4, "IV"), (1, "I")]
  • तालिका में प्रत्येक जोड़ी (टोपी, रोमन) के लिए, करें
    • d :=num/cap का तल
    • m :=num mod cap
    • रेस:=रेस + रोमन * डी
    • संख्या:=मी
  • रिटर्न रेस

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def solve(num):
   res = ""
   table = [
      (1000, "M"),
      (900, "CM"),
      (500, "D"),
      (400, "CD"),
      (100, "C"),
      (90, "XC"),
      (50, "L"),
      (40, "XL"),
      (10, "X"),
      (9, "IX"),
      (5, "V"),
      (4, "IV"),
      (1, "I"),
   ]
   for cap, roman in table:
      d, m = divmod(num, cap)
      res += roman * d
      num = m

   return res

num = 1520
print(solve(num))

इनपुट

1520

आउटपुट

MDXX

  1. किलोमीटर को मील में बदलने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें किलोमीटर में दूरी दी गई है और हमें इसे मील में बदलने की जरूरत है जैसा कि हम जानते हैं कि 1 किलोमीटर 0.62137 मील के बराबर होता है। प्रयुक्त सूत्र Miles = kilometer * 0.62137 आइए अब नीचे दिए गए कार्यान्वयन में अ

  1. हेक्स स्ट्रिंग को दशमलव में बदलने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक हेक्साडेसिमल स्ट्रिंग दी गई है, हमें इसे इसके दशमलव समकक्ष में बदलने की जरूरत है। समस्या को हल करने के लिए हमारे पास दो दृष्टिकोण हैं- क्रूर-बल दृष्टिकोण अंतर्निहित मॉड्यूल का उपयोग करना ब्रूट-फोर्स मेथड

  1. पायथन में किसी एकल वर्ण को उसके पूर्णांक मान में कैसे बदलें?

    प्रत्येक वर्ण एक ASCII मान से जुड़ा है जो एक अद्वितीय संख्या है। यह ord() फ़ंक्शन द्वारा प्राप्त किया जाता है। >>> ord('A') 65 >>> ord('+') 43 >>> ord(' ')