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

Задание 1.4. Оператор выбора (варианта) На ввод в программу натурального числа, не превышающего миллион, программа выводит словами на русском языке введенное число и слово…

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

Задание 1.4. Оператор выбора (варианта) На ввод в программу натурального числа, не превышающего миллион, программа выводит словами на русском языке введенное число и слово «учеников». Например, на ввод числа 21 385 программа выводит «двадцать одна тыся¬ча триста восемьдесят пять учеников». решить на языке C ++

Ответ нейросети
18 февраля 2025 11:00

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

Давайте рассмотрим, как это сделать:

  1. Ввод числа: Мы будем использовать стандартный ввод для получения значения от пользователя.
  2. Преобразование числа в слова: Создадим функцию, которая преобразует число в строку, содержащую его словесное представление.
  3. Формирование итоговой строки: После преобразования числа в слова добавим слово "учеников".
  4. Вывод результата: Напечатаем результат на экран.

Программа на C++

#include <iostream>
#include <string>

// Функция для преобразования чисел в слова
std::string numberToWords(int n) {
    const std::string units[] = {
        "", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять",
        "десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать",
        "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"
    };
    
    const std::string tens[] = {
        "", "", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят",
        "семьдесят", "восемьдесят", "девяносто"
    };
    
    const std::string hundreds[] = {
        "", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот",
        "семьсот", "восемьсот", "девятьсот"
    };
    
    const std::string thousands[] = {
        "", "одна тысяча", "две тысячи", "три тысячи", "четыре тысячи", "пять тысяч",
        "шесть тысяч", "семь тысяч", "восемь тысяч", "девять тысяч" 
    };
    
    std::string words;

    if (n >= 1000) {
        words += thousands[n / 1000];
        n %= 1000; // Убираем тысячи
        if (n > 0 && !words.empty()) words += " "; // Добавляем пробел
    }
    
    if (n >= 100) {
        words += hundreds[n / 100];
        n %= 100; // Убираем сотни
        if (n > 0 && !words.empty()) words += " "; // Добавляем пробел
    }
    
    if (n >= 20) {
        words += tens[n / 10];
        n %= 10; // Убираем десятки
        if (n > 0 && !words.empty()) words += " "; // Добавляем пробел
    }
    
    if (n > 0) {
        words += units[n];
    }
    
    return words;
}

int main() {
    int number;
    std::cout << "Введите натуральное число (не более 1 миллиона): ";
    std::cin >> number;

    if (number <= 0 || number > 1000000) {
        std::cout << "Ошибка: число должно быть натуральным и не превышать миллион." << std::endl;
        return 1;
    }

    std::string result = numberToWords(number) + " учеников";
    std::cout << result << std::endl;

    return 0;
}

Пояснение к коду:

  1. Определение массивов: В коде используются массивы для хранения слов для единиц, десятков, сотен и тысяч.
  2. Функция numberToWords: Это основная функция для преобразования числа в слова. Она сначала извлекает тысячи, сотни, десятки и единицы и формирует окончательную строку.
  3. Ввод числа: Программа запрашивает у пользователя ввести число и проверяет, что оно находится в допустимых пределах.
  4. Вывод: Конечный результат выводится на экран.

Как использовать программу:

Скомпилируйте код в среде разработки C++ (или используйте онлайн компилятор). При запуске программы, введите число, и программа выведет его словесное представление с добавлением слова "учеников".

Если у вас есть вопросы или требуется дополнительная помощь, не стесняйтесь спрашивать!