रोमन संख्याएं गैर-स्थितीय संख्याएं हैं। रोमन संख्याओं में एक संख्या बनाने के लिए कुछ अंकों को एक साथ रखा जाता है। उदाहरण के लिए संख्या 75 को 75 =50 + 10 + 10 + 5 के रूप में व्यक्त किया जा सकता है, इसलिए रोमन अंक LXXV हैं।
इस समस्या में दशमलव स्वरूप में एक संख्या प्रदान की जाती है, हमारा कार्य इसे रोमन अंकों के तार में बदलना है।
इस तरह अलग-अलग प्रतीक और उनके मूल्य हैं।
I | IV | V | IX | X | XL | L | XC | सी | CD | D | CM | M | MMMM | V' |
1 | 4 | 5 | 9 | 10 | 40 | 50 | 90 | 100 | 400 | 500 | 900 | 1000 | 4000 | 5000 |
इस तालिका का उपयोग करके, हम किसी दी गई संख्या के रोमन अंक आसानी से प्राप्त कर सकते हैं।
इनपुट और आउटपुट
इनपुट:दशमलव संख्या:3569आउटपुट:3569 का रोमन समकक्ष है:MMMDLXIX
एल्गोरिदम
decToRoman(nuList, num)
इनपुट: इसके मूल्य के साथ अंक सूची, रोमन में बदलने के लिए संख्या।
आउटपुट: दी गई संख्या के लिए रोमन अंक।
शुरू करें यदि num 0 है, तो अधिकतम:=अधिकतम अंक मान प्राप्त करें, संख्या से अधिक नहीं nuList [अधिकतम] प्रदर्शित करें। पूर्व>उदाहरण
#शामिल करेंनेमस्पेस एसटीडी का उपयोग करना;स्ट्रक्चर अंक {स्ट्रिंग सिम; इंट वैल;}; इंट मैक्सन्यूम (अंक संख्या [], इंट नंबर) {इंट इंडेक्स; for(int i =0; i<15; i++) // सरणी में 15 अंक if(nu[i].val<=num) index =i; // सबसे बड़ा मूल्य अंक सूचकांक, संख्या वापसी सूचकांक से अधिक नहीं;} शून्य decToRoman (संख्या संख्या [], int संख्या) { int अधिकतम; अगर (संख्या! =0) {अधिकतम =अधिकतम संख्या (न्यू, संख्या); cout < > संख्या; अगर (संख्या> 0 &&संख्या <=5000) {// इनपुट संख्या की जांच cout <<"रोमन समकक्ष" <<संख्या <<" है:"; decToRoman (संख्या, संख्या); }else { cout <<"अमान्य इनपुट"; }}पूर्व> आउटपुट
दशमलव संख्या दर्ज करें:35693569 का रोमन समकक्ष है:MMMDLXIX