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