Метод записывает вводимо число русскими словами - C#

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

Дано натуральное число (n<=1000). Написать метод в котором вводимое пользователем число будет выводиться русскими словами. Например ввели 142 и вывело сто сорок два.

Код к задаче: «Метод записывает вводимо число русскими словами - C#»

textual
public static void Main(string[] args)
        {
            while(true)
 
            {
                Console.WriteLine("Введите число:");
                Console.WriteLine(NumPhrase(Convert.ToInt32(Console.ReadLine())).ToString());
            }
           
        }
        public static string NumPhrase(int Value)
        {
            if (Value == 0)
                return "Ноль";
            string[] Dek1 =
                {
                    "", " од", " дв", " три", " четыре", " пять", " шесть", " семь", " восемь", " девять",
                    " десять", " одиннадцать", " двенадцать", " тринадцать", " четырнадцать", " пятнадцать", " шестнадцать",
                    " семнадцать", " восемнадцать", " девятнадцать"
                };
            string[] Dek2 =
                {
                    "", "", " двадцать", " тридцать", " сорок", " пятьдесят", " шестьдесят", " семьдесят",
                    " восемьдесят", " девяносто"
                };
            string[] Dek3 =
                {
                    "", " сто", " двести", " триста", " четыреста", " пятьсот", " шестьсот", " семьсот",
                    " восемьсот", " девятьсот"
                };
            string str = "";
            for (byte th = 1; Value > 0; th++)
            {
                ushort gr = (ushort) (Value%1000);
                Value = (Value - gr)/1000;
                if (gr > 0)
                {
                    byte d3 = (byte) ((gr - gr%100)/100);
                    byte d1 = (byte) (gr%10);
                    byte d2 = (byte) ((gr - d3*100 - d1)/10);
                    if (d2 == 1) d1 += (byte) 10;
                    str = Dek3[d3] + Dek2[d2] + Dek1[d1]  + str;
                }
                ;
            }
            ;
            str = str.Substring(1, 1).ToUpper() + str.Substring(2);
            return str;
        }

7   голосов, оценка 4.286 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы