
Вопрос задан 26.05.2018 в 06:07.
Предмет Информатика.
Спрашивает Ханская Дина.
НА С++ ПОЖАЛУЙСТААлгоритм Евклида для вычисления наибольшего общего делителя двух натуральных
чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно нулю; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм. Входные данные Входная строка содержит два числа, разделённые пробелом – a и b . Выходные данные Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены. Примеры входные данные 14 21 выходные данные 7 3

Ответы на вопрос

Отвечает Власова Настя.
#include <iostream>
using namespace std;
int main()
{
int a, b, nod;
int k=0;
cin >> a >> b;
while (a*b != 0){
if (a>b) a -=b;
else b -= a;
k++;
}
nod = a+b;
cout << nod << " " << k;
return 0;
}
Пример:
14 21
7 3



Отвечает Майоров Ярослав.
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
int cnt = 0;
if (a < b) swap(a, b);
while (b != 0) {
a = a - b;
if (a < b) swap(a, b);
cnt++;
}
cout << a << " " << cnt;
return 0;
}


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili