Всё сущее есть числа, или перевод римского числа в арабское

31 Янв
2012

Доброго времени суток, %username%.
После прочтения статьи о преобразовании арабских чисел в римские задался целью написать статью о проведении обратных действий, то есть преобразование чисел из римской системы обратно в родную арабскую. Алгоритм решил оформить на JAVA, так как в данное время изучаю именно его. Алгоритм достаточно тривиален, но может, кому нить придется по душе.
Ниже приведен код, написанный на JAVA реализующий алгоритм.
class ArabicToRoman {
	static String[] Rome = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X",
			"IX", "V", "IV", "I" };
	static int[] Arab = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };

	public int RometoArab(String rome) {

		public int RometoArab(String rome) {

StringBuffer romeNumber = new StringBuffer(rome);
int arabNumber = 0, i = 0;
// Проверяем переданную строку на наличие символов
if (romeNumber.length() > 0) {
	while (true) {
	do {

		if (Rome[i].length() <= romeNumber.length()) {
		// Выделяем из строки подстроку и сравниваем со
		// значением из массива Arab
		if (Rome[i].equals(romeNumber.substring(0,
			Rome[i].length()))) {
			// После чего прибавляем число соответствующее
			// индексу элемента римской цифры из массива Arab
			arabNumber += Arab[i];
			// и удаляем из строки римскую цифру
			romeNumber.delete(0, Rome[i].length());
			if (romeNumber.length() == 0)
			return arabNumber;
		} else
			break;
		} else
		break;
	} while (true && romeNumber.length() != 0);
	i++;
	}
}
return 0;

}
}
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх