Посчитать сумму двух натуральных чисел, записанных в римской системе счисления - C#
Формулировка задачи:
Посчитать сумму двух натуральных чисел А и В, записанных в римской системе счисления. Ответ также записать в римской системе счисления.
М = 1000, D = 500, С = 100, L = 50, X = 10, V = 5, I =1 (Все числа – не превышают 2000).Например:Дано VII+II,на экран должно выйти IX. У самой нету ни каких идей. Помогите.
Решение задачи: «Посчитать сумму двух натуральных чисел, записанных в римской системе счисления»
textual
Листинг программы
#include<iostream>
using namespace std;
int main (){
char lat[100];
int count = 0 ;
cin.getline(lat,100);
for (int i = 0; i < strlen(lat);i++){
switch(lat[i]){
case 'M':
count += 1000;
break;
case 'D':
count += 500;
break;
case 'C':
if ( i+1 < strlen(lat) && (lat[i + 1] == 'D' || lat[i + 1] == 'M' ) )
count -= 100;
else
count += 100;
break;
case 'L':
count += 50;
break;
case 'X':
if (i+1 < strlen(lat) && (lat[i + 1] == 'L' || lat[i + 1] == 'C' || lat[i + 1] == 'M') )
count -= 10;
else
count += 10;
break;
case 'V':
count += 5;
break;
case 'I':
if (i+1 < strlen(lat) && (lat[i + 1] == 'V' || lat[i + 1] == 'X' || lat[i + 1] == 'C'))
count -= 1;
else count +=1;
break;
}
}
cout << count << endl;
system("pause");
return EXIT_SUCCESS;
}