using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Lab2 { class Program { static void Main(string[] args) { int[] mas1 = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 }; // Массив со значениями в арабской string[] mas2 = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" }; // Их эквивалент в римской Console.Write("Введите число в римской системи счисления = "); String n = Convert.ToString(Console.ReadLine()); // Вводим с консоли и переводим строку символы int i, s, f, j; f = n.Length; // Определяем длину строки i = 0; s = 0; j = 2; while (n.Length > 0) //крутим цикл пока длина строки больше нуля { if (f == 1) j = 1; if (i == 13) { j = 1; i = 0; } if (mas2[i] == n.Substring(0, j)) // Сравниваем элемент из масива римских с выделяем из строки n, j - элементов { s = s + mas1[i]; // берем из массива арабского c i индексом элемент и сохраняем сумму n = n.Remove(0, j); // удаляем из строки эти символы(что бы еще раз не считать) i = 0; j = 2; // по умолчанию два символа f = n.Length; // сохраняем текущий длину строки } else i++; } Console.Write("Арабская десятичная система = "); Console.Write(s); Console.ReadLine(); } } }
15 сентября 2009, 21:59