কম্পিউটার

রোমান সংখ্যা থেকে সংখ্যা


রোমান সংখ্যাগুলি অ-পজিশনাল সংখ্যা৷ কিছু সংখ্যা রোমান সংখ্যায় একটি সংখ্যা গঠনের জন্য একসাথে স্থাপন করা হয়। উদাহরণস্বরূপ 75 নম্বরটিকে 75 =50 + 10 + 10 + 5 হিসাবে প্রকাশ করা যেতে পারে, তাই রোমান সংখ্যাগুলি হল LXXV৷

এই সমস্যায় একটি সংখ্যা দশমিক বিন্যাসে প্রদান করা হয়, আমাদের কাজ হল এটিকে রোমান সংখ্যার স্ট্রিংয়ে রূপান্তর করা।

বিভিন্ন চিহ্ন এবং তাদের মান আছে, যেমন।

I
IV
V
IX
X
XL
L
XC
C
CD
D
CM
M
MMMM
V’
1
4
5
9
10
40
50
90৷
100৷
400৷
500৷
900৷
1000৷
4000৷
5000৷


এই টেবিলটি ব্যবহার করে, আমরা সহজেই একটি প্রদত্ত সংখ্যার রোমান সংখ্যা খুঁজে পেতে পারি।

ইনপুট এবং আউটপুট

Input:
Decimal number: 3569
Output:
The Roman equivalent of 3569 is: MMMDLXIX

অ্যালগরিদম

decToRoman(nuList, num)

ইনপুট: এর মান সহ সংখ্যার তালিকা, রোমানে রূপান্তরিত করার সংখ্যা।

আউটপুট: প্রদত্ত সংখ্যার জন্য রোমান সংখ্যা।

Begin
   if num ≠ 0, then
      max := get maximum numeral value, not greater than number
      display the nuList[max].symbol
      num := num – nuList[max].value
      decToRoman(nuList, num)
End

উদাহরণ

#include<iostream>
using namespace std;

struct numeral {
   string sym;
   int val;
};

int maxNume(numeral nu[], int num) {
   int index;
   for(int i = 0; i<15; i++)   //15 numerals in array
      if(nu[i].val<= num)
         index = i;
   //gretest value numeral index, not greater than number
   return index;
}

void decToRoman(numeral nu[], int num) {
   int max;
   if(num != 0) {
      max = maxNume(nu, num);
      cout << nu[max].sym;
      num -= nu[max].val;   //decrease number
      decToRoman(nu, num);   //recursively print numerals
   }
}

int main() {
   int number;
   numeral nume[15] = {{"I",1},{"IV",4},{"V",5},{"IX",9},
      {"X",10},{"XL",40},{"L",50},{"XC",90},
      {"C",100},{"CD",400},{"D",500},{"CM",900},
      {"M",1000},{"MMMM",4000},{"V'",5000}
   };
   cout << "Enter a decimal number: "; cin >> number;

   if(number >0 && number <= 5000) {   //checking input number
      cout<<"The Roman equivalent of " << number<<" is: ";
         decToRoman(nume, number);
   }else {
      cout << "Invalid Input";
   }
}

আউটপুট

Enter a decimal number: 3569
The Roman equivalent of 3569 is: MMMDLXIX

  1. জাভাস্ক্রিপ্টে NEGATIVE_INFINITY নম্বর

  2. জাভাস্ক্রিপ্ট নম্বর ফাংশন

  3. জাভাস্ক্রিপ্ট নার্সিসিস্টিক নম্বর

  4. জাভাস্ক্রিপ্টে নম্বর প্যাটার্ন