Страница 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 - всецело поддерживаю. Не хотелось усложнять.