Преобразовать римское число из строки в число - C#

Узнай цену своей работы

Формулировка задачи:

Вводится строка. Если она является записью римского числа, то преобразовать ее в целое число (язык С#) хелп

Решение задачи: «Преобразовать римское число из строки в число»

textual
Листинг программы
        static void Main(string[] args)
        {
            string s;
            Console.Write("введите римское число состоящие из цифр I,V,X: ");
            s= Convert.ToString(Console.ReadLine());
 
            bool ok = true;
            int state = 1, n = 0;
            for (int i = 0; i < s.Length && ok; i++)
            {
                switch(s[i])
        {
            case 'X': 
                switch(state)
                {
                    case 1:
                        n=10;
                        state=2;
                        break;
                    case 2:
                        n=n+10;
                        break;
                    case 3:
                    case 4:
                    case 5:
                        ok=false;
                        break;
                    case 6:
                        n=n+8;
                        state=7;
                        break;
                    case 7:
                        ok=false;
                        break;
                }
                break;
            case 'V':
                switch(state)
                {
                    case 1:
                        n=5;
                        state=3;
                        break;
                    case 2:
                        n=n+5;
                        state=3;
                        break;
                    case 3:
                    case 4:
                    case 5:
                        ok=false;
                        break;
                    case 6:
                        n=n+3;
                        state=7;
                        break;
                    case 7:
                        ok= false;
                        break;
                }
                break;
            case 'I':
                switch(state)
                {
                case 1:
                    n=1;
                    state=6;
                    break;
                case 2:
                    n=n+1;
                    state=6;
                    break;
                case 3:
                    n=n+1;
                    state=4;
                    break;
                case 4:
                    n=n+1;
                    state=5;
                    break;
                case 5:
                    n=n+1;
                    state=7;
                    break;
                case 6:
                    n=n+1;
                    state=5;
                    break;
                case 7:
                    ok=false;
                    break;    
                }
                break;
            default:
                ok=false;
                break;      
        }
                        if (ok)
                            Console.WriteLine(n);
                        else
                            Console.WriteLine("Не являеться римским числом");
                        Console.ReadKey();
                }
            
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы