Советы, трюки и секреты для Blogger.com блоггеров. Все для Blogspot. Советы, трюки и секреты для Blogger.com блоггеров. Все для Blogspot.

Перевод числа, из в римской системы счисления в арабскую десятичную систему счисления (С#)

15 сентября 2009, 21:59

Написать программу перевода числа, записанного в римской системе счисления в арабскую десятичную систему счисления.
 
Code:
 
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();
        }
    }
}

Перевод числа, из в римской системы счисления в арабскую десятичную систему счисления (С#)