ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมการแปลงเลขโรมันเป็นทศนิยมซึ่งอยู่ระหว่าง 1 ถึง 3999
สำหรับสิ่งนี้ เราจะได้รับเลขโรมันแบบสุ่ม งานของเราคือการแปลงเลขโรมันที่กำหนดให้เป็นทศนิยมเทียบเท่า
ตัวอย่าง
#include<bits/stdc++.h> using namespace std; //calculating the decimal value int value(char r){ if (r == 'I') return 1; if (r == 'V') return 5; if (r == 'X') return 10; if (r == 'L') return 50; if (r == 'C') return 100; if (r == 'D') return 500; if (r == 'M') return 1000; return -1; } //calculating decimal equivalent of given numeral int convert_decimal(string &str){ int res = 0; for (int i=0; i<str.length(); i++){ //getting value of digit int s1 = value(str[i]); if (i+1 < str.length()){ int s2 = value(str[i+1]); if (s1 >= s2){ res = res + s1; } else{ res = res + s2 - s1; i++; } } else{ res = res + s1; } } return res; } int main(){ string str ="MCMIV"; cout << "Integer form:" << convert_decimal(str) << endl; return 0; }
ผลลัพธ์
Integer form:1904