কম্পিউটার টিউটোরিয়াল

সংখ্যা থেকে রোমান সংখ্যা (Number to Roman Numerals)


রোমান সংখ্যা নন-পজিশনাল সংখ্যা। কিছু নিউমেরাল একসাথে রেখে রোমান সংখ্যায় একটি সংখ্যা তৈরি করা হয়। উদাহরণস্বরূপ, সংখ্যা ৭৫ কে ৭৫ = ৫০ + ১০ + ১০ + ৫ হিসেবে প্রকাশ করা যায়, তাই রোমান নিউমেরাল হল LXXV।

এই সমস্যায় একটি সংখ্যা দশমিক ফরম্যাটে দেওয়া থাকে, আমাদের কাজ সেটিকে রোমান নিউমেরাল স্ট্রিং-এ রূপান্তর করা।

বিভিন্ন সিম্বল এবং তাদের মান আছে, যেন:

I
IV
V
IX
X
XL
L
XC
C
CD
D
CM
M
MMMM
V’
১
৪
৫
৯
১০
৪০
৫০
৯০
১০০
৪০০
৫০০
৯০০
১০০০
৪০০০
৫০০০


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

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

ইনপুট: দশমিক সংখ্যা: ৩৫৬৯ আউটপুট: ৩৫৬৯-এর রোমান সমতুল্য হল: MMMDLXIX

অ্যালগরিদম

decToRoman(nuList, num)

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

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

শুরু 
  যদি num ≠ 0, তবে 
    max := সর্বোচ্চ নিউমেরাল মান পান, যা সংখ্যা থেকে বড় নয় 
    nuList[max].symbol প্রদর্শন করুন 
    num := num – nuList[max].value 
    decToRoman(nuList, num) 
শেষ

উদাহরণ

#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++)   //অ্যারেতে ১৫টি নিউমেরাল   if(nu[i].val<= num)       index = i;    //সংখ্যা থেকে বড় নয় এমন সর্বোচ্চ মান নিউমেরালের ইনডেক্স   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;   //সংখ্যা কমানো   decToRoman(nu, num);   //রিকার্শিভলি নিউমেরাল প্রিন্ট করুন   } } 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) {    //ইনপুট সংখ্যা চেক করুন     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. জাভাস্ক্রিপ্টে Number.NEGATIVE_INFINITY প্রপার্টি

  2. জাভাস্ক্রিপ্ট Number() ফাংশন

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

  4. জাভাস্ক্রিপ্টে সংখ্যা প্যাটার্ন প্রিন্ট করা