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

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

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

  • "I" = 1
  • "V" = 5
  • "X" = 10
  • "L" = 50
  • "C" = 100
  • "D" = 500
  • "M" = 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 := खाली स्ट्रिंग
  • 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")]
  • table में प्रत्येक जोड़ी (cap, roman) के लिए, करें:
    • d := num/cap का फ्लोर
    • m := num mod cap
    • res := res + roman * d
    • num := m
  • res लौटाएं

उदाहरण

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. Python प्रोग्राम से किलोमीटर को मील में बदलना Python प्रोग्राम से किलोमीटर को मील में बदलना

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

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

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

  1. - Python में सिंगल कैरेक्टर को उसके इंटीजर मान में कैसे बदलें?

    प्रत्येक कैरेक्टर एक ASCII मान से जुड़ा होता है जो एक यूनिक नंबर है। इसे `ord()` फंक्शन द्वारा प्राप्त किया जाता है। >>> ord(A) 65 >>> ord(+) 43 >>> ord( ) 32