Сигма, сделал 1 задание, еееее
This commit is contained in:
61
1.cpp
Normal file
61
1.cpp
Normal 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user