Реализовать программу на с++: Найти произведение целых чисел от m до n, кратных к. С помощью цикла for и с помощью цикла while(или do while). Выбор цикла while или do while зависит от алгоритма, должен быть применён тот цикл, который позволяет получить оптимальный код.
Ответы
Иллюстрации кода и пример вывода прикреплен ниже.
Сам код доступен в виде текста в конце ответа.
В коде определены функции:
- 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;
}
![](https://st.uroker.com/files/e31/e31e93634c2d260d67d69f702398bbcb.png)
![](https://st.uroker.com/files/d2b/d2b671cc9f93ff6feec817c5fe48de81.png)
![](https://st.uroker.com/files/c9a/c9a8274a848221a9a3c92c9096bf830a.png)