char* add_roman(char augend[], char addend[]) {
  int x = roman_to_int(augend);
  int y = roman_to_int(addend);
  int sum = x + y;

  return int_to_roman(sum);
}
char* subtract_roman(char minuend[], char subtrahend[]) {
  int x = roman_to_int(minuend);
  int y = roman_to_int(subtrahend);
  int difference = x - y;

  return int_to_roman(difference);
}
Esempio n. 3
0
//
//	Глава 10. Упражнение 6. Перевод в/из Римских цифр.
//

#include "code.h"

//------------------------------------------------------------------------------
//input number
istream& operator>>(istream& is, Roman_int& r)
{
	string num;
	is >> num;
	r = Roman_int( roman_to_int(num) );
	return is;
}

//------------------------------------------------------------------------------
//output number
ostream& operator<<(ostream& os, const Roman_int& r)
{
	return os << int_to_roman(r.as_int());
}

//------------------------------------------------------------------------------
//Converting from Roman to Arabic
int roman_to_int(string num)
{	//MMMDCCLII = 3752
	int number=r_int(num[num.size()-1]), r=0;

	for (int i=num.size()-1; i>0; i--)
		if ( r_int(num[i-1]) > r_int(num[i]) ){