При решении задания необходимо использовать не менее 3-ех подпрограмм, а также построить и представить в отчете структурную схему программы.
Пользователь вводит массив целых чисел, размер массива – 10 элементов. Вычислить и вывести на экран минимальное наибольшее общее кратное двух соседних элементов массива.
C/C++
Прoграмирoвaния на c++
Для любых вводимых натуральных чисел (без ограничений!):
#include
#include
#define m mpz_class
using namespace std; m Euclid(m x, m y)
{ m z; for(;;) { z = x % y; if (z == 0) return y;
else x = y; y = z; } }
m NOK(m x, m y) { return x * y / Euclid(x, y); }
int main() { m A[10], mini, x; cin >> A[0] >> A[1];
mini = NOK(A[0], A[1]); for (int i = 2; i < 10; i++)
{ cin >> A[i]; x = NOK(A[i], A[i-1]); if(x < mini) mini = x; }
cout
Ответ от искусственного интеллекта OpenAi
#include <iostream>
// Функция для нахождения НОД двух чисел
int gcd(int a, int b)
{
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// Функция для нахождения НОК двух чисел
int lcm(int a, int b)
{
return (a * b) / gcd(a, b);
}
int main()
{
const int size = 10;
int arr[size];
std::cout << "Введите " << size << " целых чисел: ";
for (int i = 0; i < size; i++) {
std::cin >> arr[i];
}
int min_lcm = lcm(arr[0], arr[1]);
for (int i = 2; i < size; i++) {
min_lcm = lcm(min_lcm, arr[i]);
}
std::cout << "Минимальное наибольшее общее кратное двух соседних элементов массива: "
<< min_lcm << std::endl;
return 0;
}
В этом примере мы использовали три функции:
gcd() - для нахождения наибольшего общего делителя двух чисел.
lcm() - для нахождения наименьшего общего кратного двух чисел с помощью формулы НОК(a, b) = (a * b) / НОД(a, b).
main() - основная функция, где мы считываем массив, находим минимальное наибольшее общее кратное двух соседних элементов массива с помощью функции lcm(), и выводим его на экран.
Структурная схема программы может выглядеть так:
+---------------------------+
| Ввод массива из 10 чисел |
+---------------------------+
|
v
+---------------------------+
| Нахождение НОК двух чисел |
+---------------------------+
|
v
+--------------------------------+
| Нахождение НОК всех элементов |
+--------------------------------+
|
v
+--------------------------+
| Вывод результата на экран |
+--------------------------+
#include <iostream>
// Функция для нахождения НОД двух чисел
int gcd(int a, int b)
{
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// Функция для нахождения НОК двух чисел
int lcm(int a, int b)
{
return (a * b) / gcd(a, b);
}
int main()
{
const int size = 10;
int arr[size];
std::cout << "Введите " << size << " целых чисел: ";
for (int i = 0; i < size; i++) {
std::cin >> arr[i];
}
int min_lcm = lcm(arr[0], arr[1]);
for (int i = 2; i < size; i++) {
min_lcm = lcm(min_lcm, arr[i]);
}
std::cout << "Минимальное наибольшее общее кратное двух соседних элементов массива: "
<< min_lcm << std::endl;
return 0;
}
В этом примере мы использовали три функции:
gcd() - для нахождения наибольшего общего делителя двух чисел.
lcm() - для нахождения наименьшего общего кратного двух чисел с помощью формулы НОК(a, b) = (a * b) / НОД(a, b).
main() - основная функция, где мы считываем массив, находим минимальное наибольшее общее кратное двух соседних элементов массива с помощью функции lcm(), и выводим его на экран.
Структурная схема программы может выглядеть так:
+---------------------------+
| Ввод массива из 10 чисел |
+---------------------------+
|
v
+---------------------------+
| Нахождение НОК двух чисел |
+---------------------------+
|
v
+--------------------------------+
| Нахождение НОК всех элементов |
+--------------------------------+
|
v
+--------------------------+
| Вывод результата на экран |
+--------------------------+
Похожие вопросы
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Задача по C++
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Программирование C++ ПРОШУ ПОМОЧЬ!
- Почему создатель Linux Линус Торвальдс называет C++ ужасным языком, а ядро ОС Linux пишется только на Си?
- Задача на C++ (Остатки).
- Сделать перестановку чисел с помощью функции в C++, но у меня получается чепуха
- Задача по c++ на векторы. Часть программы написана. Нужны правки.
- Проблема с указателем в C++
- Програмирование на C/C++ на основе блоксхемы