Написать программу, выводящую по заданному числу сумму прописью - C#

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

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

Помогите написать программу, выводящую по заданному числу от 0 до 999 999 999 999,99 сумму прописью. Пока есть только это.
 public static string NumPhrase(ulong Value, bool IsMale)
        {
            if (Value == 0UL) return "Ноль";
            string[] Dek1 = { "", " один", " два", " три", " четыре", " пять", " шесть", " семь", " восемь", " девять", " десять", " одиннадцать", " двенадцать", " тринадцать", " четырнадцать", " пятнадцать", " шестнадцать", " семнадцать", " восемнадцать", " девятнадцать" };
            string[] Dek2 = { "", "", " двадцать", " тридцать", " сорок", " пятьдесят", " шестьдесят", " семьдесят", " восемьдесят", " девяносто" };
            string[] Dek3 = { "", " сто", " двести", " триста", " четыреста", " пятьсот", " шестьсот", " семьсот", " восемьсот", " девятьсот" };
            string[] Th = { "", "", " тысяч", " миллион", " миллиард", " триллион", " квадрилион", " квинтилион" };
            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; bool ismale = (th > 2) || ((th == 1) && IsMale); str = Dek3[d3] + Dek2[d2] + Dek1[d1] + Endked1(d1, ismale) + Th[th] + EndTh(th, d1) + str;
                }
            }
            str = str.Substring(1, 1).ToUpper() + str.Substring(2); return str;
        }

Решение задачи: «Написать программу, выводящую по заданному числу сумму прописью»

textual
Листинг программы
        static void Main(string[] args)
        {
 
            Dictionary<char, string> unit = new Dictionary<char, string>(){{'0',""},
            {'1',"один"},{'2',"два"},{'3',"три"}, {'4',"четыре"},{'5',"пять"},
            {'6',"шесть"}, {'7',"семь"},{'8',"восемь"},{'9',"девять"}};
 
            Dictionary<char, string> ten = new Dictionary<char, string>(){{'0',""},
            {'1',"десять"},{'2',"двадцать"},{'3',"тридцать"}, {'4',"сорок"},{'5',"пятьдесят"},
            {'6',"шестьдесят"}, {'7',"семьдесят"},{'8',"восемьдесят"},{'9',"девяносто"}};
 
            Dictionary<char, string> hundred = new Dictionary<char, string>(){{'0',""},
            {'1',"сто"},{'2',"двести"},{'3',"триста"}, {'4',"четыреста"},{'5',"пятьсот"},
            {'6',"шестьсот"}, {'7',"семьсот"},{'8',"восемьсот"},{'9',"девятьсот"}};
 
            Dictionary<char, string> thousand = new Dictionary<char, string>(){{'0',""},
            {'1',"одна тысяча"},{'2',"две тысячи"},{'3',"три тысячи"},{'4',"четыре тысячи"},{'5',"пять тысяч"},{'6',"шесть тысяч"},
            {'7',"семь тысяч"},{'8',"восемь тысяч"},{'9',"девять тысяч"}};
 
 
            List<Dictionary<char, string>> mylist = new List<Dictionary<char, string>>();
            mylist.Add(unit);
            mylist.Add(ten);
            mylist.Add(hundred);
            mylist.Add(thousand);
 
            long x;
            do
            {
                Console.Clear();
                Console.WriteLine("Введите целое число");
            } while (!Int64.TryParse(Console.ReadLine(), out x));
            string s = x.ToString();
 
            string result = "";
            int leng =s.Length;
 
            for(int i =0; i<leng;i++)
            {
                if (leng - i == 2 && s[i] == '1')
                {
                    result += unit[s[i]] + "надцать ";
                    break;
                }
                else
                    result += mylist[leng - i-1][s[i]] + " ";
            }
            Console.WriteLine(result);
 
            Console.ReadLine();
        }

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


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

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

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