Страница 1 из 1
С++
Добавлено: 18 ноя 2013, 15:47
Катеринаа
Сколько существует четырехзначных чисел, кратных 45, две средние цифры которых 7 и 9? Напечатать общее количество и сами числа. Напишите функцию, определяющую, удовлетворяет ли число заданному критерию.
Использовать функции (возвращающие более одного результата) и указатели...
Re: С++
Добавлено: 18 ноя 2013, 18:08
Romeo
Катеринаа, пожалуйста делай осмысленные названия тем. Иначе буду просто чистить их (темы).
По заданию. Не знаю, зачем здесь нужны указатели и функции, возвращающие более одного результата. Подход следует использовать следующий. Дело в том, что число, записываемое нами как X79Y математически может быть предствлено, как 1000*X + 790 + Y. Таким образом достаточно во вложеном цикле по X и Y перебрать все возможные четырёхзначные числа и проверить их делимость на 45. Вот алгоритм на импровизированном алгоритмическом языке:
Код: Выделить всё
Количество = 0;
Цикл X от 1 до 9
{
Цикл Y от 0 до 9
{
Число = 1000*X + 790 + Y;
Если (Число % 45 == 0)
{
Количество = Количество + 1;
Выписать Число;
}
}
}
Выписать Количество;
Где операция % - это операция вычисления остатока от деления одного число (слева) на второе число (справа). Это операция идентична оператору % в С/С++.
Re: С++
Добавлено: 18 ноя 2013, 18:13
Катеринаа
А мне нужны указатели и функции, возвращающие более одного значения... Как их тут использовать?..
Re: С++
Добавлено: 18 ноя 2013, 19:41
Romeo
Возвращать более одного значения из функции можно только через выходные параметры. Выходные параметры (output parameters) можно реализовать либо через С++ные ссылки, либо через С-шные указатели. Как именно это здесь использовать - это уже второй вопрос. При желании можно придумать, только не очень понятно зачем.
Re: С++
Добавлено: 18 ноя 2013, 19:54
Катеринаа
Нужно через указатели... Только как...
Re: С++
Добавлено: 19 ноя 2013, 14:55
somewhere
Создать структуру для хранения двух возвращаемых значений. Передавать в функцию некоторые данные и получать от нее указатель на эту структуру. Только куда это прикрутить - я не знаю, но зато теперь знаю откуда берутся рукожопые программисты
Вот алгоритм на импровизированном алгоритмическом языке
Вообще, я бы перебирал только два значения Y: это 0 и 5. Даже не спрашивайте почему :-D
Re: С++
Добавлено: 19 ноя 2013, 19:19
Romeo
На счёт 0 и 5 - всецело поддерживаю. Не хотелось усложнять.