Составить программу, которая читает натуральное число N в десятичном представлении (N=< 10000), а...

C# программа преобразование числа десятичное представление естественный язык натуральное число перевод чисел
0

Составить программу, которая читает натуральное число N в десятичном представлении (N=< 10000), а на выходе выдает это же число в десятичном представлении и на естественном языке. Например, 7 Þ семь; 204 Þ двести четыре; 52 Þ пятьдесят два в C#

avatar
задан 8 дней назад

3 Ответа

0

Для решения данной задачи в C# можно использовать следующий код:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Введите натуральное число N (N 

avatar
ответил 8 дней назад
0

Для решения этой задачи в C# нужно создать программу, которая преобразует введенное натуральное число в его текстовое представление на русском языке. В этой задаче важно учитывать правильное склонение числительных в зависимости от их разрядности. Мы можем разделить число на составляющие его разряды и для каждого из них подобрать соответствующее слово. Ниже приведен пример такой программы:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Введите натуральное число N (N  {NumberToWords(number)}");
        }
        else
        {
            Console.WriteLine("Некорректный ввод. Пожалуйста, введите натуральное число от 1 до 10000.");
        }
    }

    static string NumberToWords(int number)
    {
        if (number == 0)
            return "ноль";

        if (number == 10000)
            return "десять тысяч";

        string[] units = { "", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять" };
        string[] teens = { "десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать" };
        string[] tens = { "", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто" };
        string[] hundreds = { "", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот" };

        string words = "";

        if ((number / 1000) > 0)
        {
            if (number / 1000 == 1)
                words += "тысяча ";
            else if (number / 1000 < 5)
                words += units[number / 1000] + " тысячи ";
            else
                words += units[number / 1000] + " тысяч ";

            number %= 1000;
        }

        if ((number / 100) > 0)
        {
            words += hundreds[number / 100] + " ";
            number %= 100;
        }

        if ((number / 10) > 1)
        {
            words += tens[number / 10] + " ";
            number %= 10;
        }

        if (number > 0 && number < 10)
        {
            words += units[number] + " ";
        }
        else if (number >= 10 && number < 20)
        {
            words += teens[number - 10] + " ";
        }

        return words.Trim();
    }
}

Объяснение программы:

  1. Ввод и проверка данных:

    • Программа запрашивает у пользователя ввод натурального числа N.
    • Используется int.TryParse для проверки корректности ввода. Убедитесь, что число находится в диапазоне от 1 до 10000.
  2. Массивы строк:

    • Определены массивы строк для единиц (units), десятков (tens), сотен (hundreds) и чисел от 10 до 19 (teens).
  3. Преобразование чисел в слова:

    • Программа последовательно обрабатывает каждый разряд числа: тысячи, сотни, десятки и единицы.
    • Для каждого разряда добавляется соответствующее слово из массива.
    • Обрабатываются особые случаи для чисел от 10 до 19, а также для склонения слова "тысяча".
  4. Форматирование результата:

    • Удаляются лишние пробелы в конце строки перед выводом результата.

Эта программа позволяет преобразовать любое число от 1 до 10000 в его текстовое представление на русском языке.

avatar
ответил 8 дней назад
0

using System;

class Program {

static void Main()
{
    int number;
    string[] ones = { "", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять" };
    string[] tens = { "", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто" };
    string[] hundreds = { "", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот" };
    string[] thousands = { "", "тысяча", "тысячи", "тысяч" };

    Console.Write("Введите число: ");
    number = Convert.ToInt32(Console.ReadLine());

    if (number == 0)
    {
        Console.WriteLine("ноль");
        return;
    }

    int n1 = number % 10;
    int n2 = (number / 10) % 10;
    int n3 = (number / 100) % 10;
    int n4 = (number / 1000) % 10;

    if (number > 999)
    {
        Console.Write(hundreds[n4] + " ");
        if (n3 == 1)
        {
            Console.Write("одна ");
        }
        else if (n3 == 2)
        {
            Console.Write("две ");
        }
        else
        {
            Console.Write(ones[n3] + " ");
        }
        Console.Write(thousands[n3] + " ");
    }

    if (n2 == 1)
    {
        Console.Write("десять ");
    }
    else
    {
        Console.Write(tens[n2] + " ");
        Console.Write(ones[n1] + " ");
    }

    Console.WriteLine();
}

}

avatar
ответил 8 дней назад

Ваш ответ

Вопросы по теме