First commit

This commit is contained in:
2024-10-26 09:11:25 +03:00
commit d45769c4bc
9 changed files with 354 additions and 0 deletions

56
task1.cpp Normal file
View File

@@ -0,0 +1,56 @@
/* Задание 1
* Написать программу для поиска наибольшего общего делителя (числа
* вводятся с клавиатуры после запуска программы):
* Нечетные варианты: наибольший делитель трех чисел методом деления
* (для поиска остатка отделения в языке C++ используется операция %)
* Четные варианты: наибольший общий делитель четырех чисел метолом
* вычитания
*/
#include <iostream>
// Функция для нахождения НОД двух чисел (метод деления)
int gcdDivision(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
// Функция для нахождения НОД трех чисел
int gcdOfThreeNumbers(int x, int y, int z) {
return gcdDivision(gcdDivision(x, y), z);
}
// Функция для нахождения НОД двух чисел методом вычитания
int gcdSubtraction(int a, int b) {
while (a != b) {
if (a > b) {
a -= b;
} else {
b -= a;
}
}
return a; // или b, так как a == b
}
// Функция для нахождения НОД четырех чисел
int gcdOfFourNumbers(int w, int x, int y, int z) {
return gcdSubtraction(gcdSubtraction(gcdSubtraction(w, x), y), z);
}
int main()
{
int w, x, y, z;
std::setlocale(LC_ALL, "Russian");
std::cout << "Введите четыре числа: ";
std::cin >> w >> x >> y >> z;
std::cout << "Найдем НОД чисел x, y, z: " << gcdOfThreeNumbers(x, y, z) << std::endl;
std::cout << "Найдем НОД чисел w, x, y, z: " << gcdOfFourNumbers(w, x, y, z) << std::endl;
return 0;
}