Сигма, сделал 1 задание, еееее

This commit is contained in:
oltnd
2024-11-04 16:28:06 +03:00
parent cb458b4bb7
commit eeff122c28

61
1.cpp Normal file
View File

@@ -0,0 +1,61 @@
#include <iostream>
#include <limits>
using namespace std;
int gcdDivision(int a, int b) {
while (b != 0) {
int remainder = a % b;
a = b;
b = remainder;
}
return a;
}
int gcdSubtraction(int a, int b) {
while (a != b) {
if (a > b)
a -= b;
else
b -= a;
}
return a;
}
int z1(int a, int b, int method) {
switch (method) {
case 1:
return gcdDivision(a, b);
case 2:
return gcdSubtraction(a, b);
default:
cout << "Некорректный выбор метода. Выберите 1 или 2." << endl;
return -1;
}
}
void z1launcher() {
int a, b, method;
cout << "Введите два положительных целых числа: ";
if (!(cin >> a >> b) || a <= 0 || b <= 0) {
cout << "Ошибка: ввод должен быть положительными целыми числами." << endl;
return;
}
cout << "Выберите метод:\n1 - Деление\n2 - Вычитание\nВаш выбор: ";
if (!(cin >> method) || (method != 1 && method != 2)) {
cout << "Ошибка: некорректный выбор метода. Введите 1 или 2." << endl;
return;
}
int result = z1(a, b, method);
if (result != -1) {
cout << "НОД = " << result << endl;
}
}
int main() {
setlocale(LC_ALL, "");
z1launcher();
return 0;
}