Реализовать программу на с++: Найти произведение целых чисел от m до n, кратных к. С помощью цикла for и с помощью цикла while(или do while). Выбор цикла while или do while зависит от алгоритма, должен быть применён тот цикл, который позволяет получить оптимальный код.

Ответы

Ответ дал: MaxLevs
0

Иллюстрации кода и пример вывода прикреплен ниже.

Сам код доступен в виде текста в конце ответа.

В коде определены функции:

  • is_number_divided_by() - для проверки делимости числа на k
  • get_production_for() - реализация алгоритма вычисления заданного произведения с использованием цикла for.
  • get_production_while() - реализация алгоритма вычисления заданного произведения с использованием цикла while.

========================

Ваши оценки и отзывы помогают лучше оценить качество решения.

Если решение удовлетворило, то не забудь отметить его как "Лучшее".

========================

Код:

#include <iostream>

bool is_number_divided_by(int number, int fr) {

   return number % fr == 0;

}

int get_production_for(int m, int n, int k) {

   int production = 1;

   for (int number = m; number <= n; ++number) {

       if(is_number_divided_by(number, k)) {

           production *= number;

       }

   }

   return production;

}

int get_production_while(int m, int n, int k) {

   int production = 1;

   while (m <= n) {

       if(is_number_divided_by(m, k)) {

           production *= m;

       }

       ++m;

   }

   return production;

}

int main() {

   const int m = 3, n = 7, k = 2;

   std::cout << "Getting production for m=" << m << " n=" << n << " and k=" << k << "..." << std::endl;

   std::cout << "FOR way result is " << get_production_for(m, n, k) << std:: endl;

   std::cout << "WHILE way result is " << get_production_while(m, n, k) << std:: endl;

   return 0;

}

Приложения:
Вас заинтересует