Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №2934599
А
Аноним
11 марта 2025 10:35 · публичный вопрос
А
Аноним

Напиши код работы на C++ На ввод в программу натурального числа не превышающего миллион программа выводит словами на русском языке введённое число и слово учеников например на…

Запрос пользователя

Напиши код работы на C++ На ввод в программу натурального числа не превышающего миллион программа выводит словами на русском языке введённое число и слово учеников например на ввод числа 21385 программа выводит "двадцать одна тысяча триста восемьдесят учеников

Ответ нейросети
11 марта 2025 10:35

Для решения задачи на C++ нам нужно написать программу, которая принимает натуральное число до одного миллиона и выводит его представление словами на русском языке, добавляя в конец слово "учеников".

Вот пошаговое объяснение кода:

  1. Определение массивов для чисел: Мы создадим массивы для единиц, десятков, сотен и тысяч, чтобы упростить преобразование чисел в слова.

  2. Обработка входного числа: Мы будем обрабатывать число, разбивая его на составляющие (тысячи, сотни, десятки, единицы), и соответственно формировать строку для их представления.

  3. Формирование строки: Составим строку из слов, представляющих число, и добавим слово "учеников".

Вот пример кода:

#include <iostream>
#include <string>

using namespace std;

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

string число_в_словах(int n) {
    if (n == 0) return "ноль";

    string результат = "";

    if (n >= 1000) {
        результат += тысячи[n / 1000] + " тысяча ";
        n %= 1000;
    }

    if (n >= 100) {
        результат += сотни[n / 100] + " ";
        n %= 100;
    }

    if (n >= 20) {
        результат += десятки[n / 10] + " ";
        n %= 10;
    } else if (n >= 10) {
        результат += teen[n - 10] + " ";
        n = 0;
    }

    результат += единицы[n];

    return результат;
}

int main() {
    int number;
    cout << "Введите натуральное число не превышающее миллион: ";
    cin >> number;

    if (number < 1 || number >= 1000000) {
        cout << "Ошибка! Введите число в диапазоне от 1 до 999999." << endl;
        return 1;
    }

    string результат = число_в_словах(number);
    результат += " учеников";
    cout << результат << endl;

    return 0;
}

Объяснение кода:

  1. Библиотеки: Мы подключаем библиотеку <iostream> для ввода/вывода и <string> для работы со строками.

  2. Массивы: Мы определяем массивы для единиц, десятков, десятков от 10 до 19 (teen), сотен и тысяч.

  3. Функция число_в_словах: Эта функция принимает число и возвращает его представление в виде строки.

    • Сначала проверяем, не превышает ли число 999, затем разбиваем его на части: тысячи, сотни, десятки и единицы.
    • Строка формируется путем конкатенации соответствующих частей с пробелами.
  4. Основная функция main: Здесь происходит ввод числа и вывод результата.

    • Проверяется, чтобы число находилось в заданном диапазоне.
    • Вызывается функция для преобразования числа в слова и добавляется окончание "учеников".

Таким образом, вы можете вводить числа, и программа будет корректно их выводить словами.