0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 42
1

Найти НОД двух чисел, используя алгоритм Евклида

09.01.2019, 14:06. Показов 7166. Ответов 5
Метки нет (Все метки)

Требуется найти наибольший общий делитель двух заданных натуральных чисел, используя алгоритм Евклида.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int main()
{
    int a, b;
    cin >> a >> b;
 
    do {
        if(a > b){
           a = a - b;;
        }
        else if (b > a) {
            b = b - a;
 
        }
    } while (a == b);
    cout << b;
    return 0;
}
Не могу понять, почему код не работает. Помогите
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2019, 14:06
Ответы с готовыми решениями:

Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида
Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида....

Наибольший общий делитель (НОД) двух целых положительных чисел A и B, используя алгоритм Евклида
Описать функцию NOD2(A, B) целого типа, находящую наибольший общий делитель (НОД) двух целых...

Описать функцию NOD2(A,B) целого типа,находящую наибольший общий делитель(НОД) двух целых положительных чисел А и В,используя алгоритм Евклида:....
Описать функцию NOD2(A,B) целого типа,находящую наибольший общий делитель(НОД) двух целых...

НОД двух чисел алгоритм Евклида
Найти найбольший общий делитель двух чисел по алгоритму Евклида. Использовать рекурсию.

5
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
09.01.2019, 14:09 2
Цитата Сообщение от HateLov Посмотреть сообщение
a = a - b;;
две точки с запятой, а вообще: тык
0
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 42
09.01.2019, 14:21  [ТС] 3
Мне не нужно другое решение, я хочу понять, что не так с моим. ";" ничего не меняет...
При вводе "14 21" выводит "7". Всё работает.
Но при вводе "42 13" выводит "13" , а должно вывести "1"
0
446 / 332 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
09.01.2019, 14:28 4
Банальное копирование другого кода дает правильный ответ, но соре это ведь так трудно посмотреть правильный код и сравнить со своим:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
int main() {
  int a, b;
  cin >> a >> b;
 
  while (a && b) {
    if (a >= b) {
      a = a - b;;
    } else if (b >= a) {
      b = b - a;
    }
  }
  cout << b;
  return 0;
}
0
0 / 0 / 0
Регистрация: 22.10.2018
Сообщений: 42
09.01.2019, 14:36  [ТС] 5
Спасибо!
0
83 / 20 / 0
Регистрация: 30.10.2018
Сообщений: 106
09.01.2019, 15:21 6
цикл "do while" выполнится хотя бы один раз
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2019, 15:21
Помогаю со студенческими работами здесь

Найти наибольший общий делитель двух чисел используя алгоритм Евклида
Найти наибольший общий делитель двух чисел используя алгоритм Евклида. Подскажите как написать...

Найти наибольший общий делитель двух введенных чисел, используя алгоритм Евклида
Тема: Функции2. 6. Найти наибольший общий делитель (ндс) двух введенных чисел, используя алгоритм...

Найти наибольший общий делитель (НОД), используя алгоритм Евклида
Даны целые положительные числа A и B. Найти их наибольший об-щий делитель (НОД), используя алгоритм...

Найти НОД двух целых чисел по алгоритму Евклида.
задание: Найти НОД двух целых чисел по алгоритму Евклида.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru