이 튜토리얼에서는 로마 숫자를 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