В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Tuchka2oo5
Tuchka2oo5
23.12.2021 05:32 •  Информатика

Написать программу, которая для любого трехзначного натурального числа печатает его на естественном языке. Например, 107 → сто семь, 234 → двести тридцать четыре, 517 → пятьсот семнадцать.

Показать ответ
Ответ:
SobolVitalik
SobolVitalik
15.10.2020 16:28
C#string[][] words = { new [] { "", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот "}, new [] { "", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто "}, new [] { "", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять",  }, new [] { "", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать" }, }; int[] a = Console.ReadLine().Select(c => int.Parse(c.ToString())).ToArray(); string s = words[0][a[0]] + (a[1] == 1 && a[2] != 0 ? words[3][a[2]] : words[1][a[1]] + words[2][a[2]]); Console.WriteLine(s); Console.ReadLine();

Пример работы:


Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
0,0(0 оценок)
Ответ:
ренатка6
ренатка6
15.10.2020 16:28

Скриншоты примеров работы во вложениях к ответу.

Код:

using System;

using System.Collections.Generic;

namespace PrintNumbersNaturaly

{

   class Program

   {

       static string GetShardName(int n, string  hundreds, string dozens, string units)

       {

           var d = new Dictionary<int, List<string>>

           {

               {1, new List<string>{"", "", ""}},

               {2, new List<string>{"Тысяча ", "Тысячи ", "Тысяч "}},

               {3, new List<string>{"Миллион ", "Миллиона ", "Миллионов "}},

               {4, new List<string>{"Миллиард ", "Миллиарда ", "Миллиардов "}},

           };

           if (dozens != "1")

           {

               switch (units)

               {

                   case "1":

                       return d[n][0];

                   

                   case "2":

                   case "3":

                   case "4":

                       return d[n][1];

                   

                   default:

                       return d[n][2];

               }

           }

           return d[n][2];

       }

       

       static string GetHundredsName(string number)

       {

           var d = new Dictionary<string, string>

           {

               {"1", "Сто "}, {"2", "Двести "}, {"3", "Триста "}, {"4", "Четыреста "}, {"5", "Пятьсот "},

               {"6", "Шестьсот "}, {"7", "Семьсот "}, {"8", "Восемьсот "}, {"9", "Девятьсот "}, {"0", ""}

           };

           return d[number];

       }

       

       static string GetDozensName(string number)

       {

           var d = new Dictionary<string, string>

           {

               {"1", "Десять "}, {"2", "Двадцать "}, {"3", "Тридцать "}, {"4", "Сорок "}, {"5", "Пятьдесят "},

               {"6", "Шестьдесят "}, {"7", "Семьдесят "}, {"8", "Восемьдесят "}, {"9", "Девяносто "}, {"0", ""}

           };

           return d[number];

       }

       static string GetUnitsName(string number)

       {

           var d = new Dictionary<string, string>

           {

               {"1", "Один "}, {"2", "Два "}, {"3", "Три "}, {"4", "Четыре "}, {"5", "Пять "},

               {"6", "Шесть "}, {"7", "Семь "}, {"8", "Восемь "}, {"9", "Девять "}, {"0", ""}

           };

           return d[number];

       }

       

       static string GetExceptionsName(string number)

       {

           var d = new Dictionary<string, string>

           {

               {"11", "Одиннадцать "}, {"12", "Двенадцать "}, {"13", "Тринадцать "}, {"14", "Четырнадцать "},

               {"15", "Пятьнадцать "}, {"16", "Шестнадцать "}, {"17", "Семнадцать "}, {"18", "Восемнадцать "},

               {"19", "Девятнадцать "}

           };

           return d.ContainsKey(number) ? d[number] : string.Empty;

       }

       static string GetNumberName(string number)

       {

           var n = (int) Math.Ceiling(number.Length / 3.0);

           var k = 3 - (number.Length - 1) % 3 - 1;

           number = new string('0', k) + number;

           var name = "";

           for (var i = n; i > 0; --i)

           {

               var hundreds = number[i * 3 - 3].ToString();

               var dozens = number[i * 3 - 2].ToString();

               var units = number[i * 3 - 1].ToString();

               

               var shard = GetHundredsName(hundreds);

               var exceptionsName = GetExceptionsName(dozens + units);

               if (exceptionsName != string.Empty)

               {

                   shard += exceptionsName;

               }

               else

               {

                   var dozensName = GetDozensName(dozens);

                   var unitsName = GetUnitsName(units);

                   shard += dozensName + unitsName;

               }

               name = shard + GetShardName(n - i + 1, hundreds, dozens, units) + name;

           }

           

           return name;

       }

       

       static string GetNumberName(int number)

       {

           return GetNumberName(number.ToString());

       }

       

       static void Main(string[] args)

       {

           var number = Console.ReadLine();

           Console.WriteLine(GetNumberName(number));

       }

   }

}


Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
Написать программу, которая для любого трехзначного натурального числа печатает его на естественном
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота