Форум программистов, компьютерный форум CyberForum.ru

Рекурсия. Наименьший общий делитель по формулам Евклида - C++

Восстановить пароль Регистрация
 
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
21.04.2011, 20:16     Рекурсия. Наименьший общий делитель по формулам Евклида #1
Подскажите как выполнить рекурсию.
прога работает, но без рекурсии.
задание в приложении.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <clocale>
 
using namespace std;
 
  int NOD(int a,int b)
 {
    while(a!=0 && b!=0)
    {
       if(a>=b) a%=b;
           else b%=a;
    }
 return a+b; 
 }
int main(){
int A, B;
  cout << "Enter numbers: " << endl;
  cin >> A;
  cin >> B;
cout << "REZ: " << NOD(A,B) << endl;
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Миниатюры
Рекурсия. Наименьший общий делитель по формулам Евклида  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 20:16     Рекурсия. Наименьший общий делитель по формулам Евклида
Посмотрите здесь:

C++ Наименьший общий делитель. Алгоритм Евклида.
C++ Найти наибольший общий делитель n и m (наименьшее общее кратное n и m) используя алгоритм Евклида.
C++ Найти наибольший общий делитель (НОД), используя алгоритм Евклида
наибольший общий делитель (НОД) двух целых положительных чисел A и B, используя алгоритм Евклида: C++
C++ Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
21.04.2011, 20:27     Рекурсия. Наименьший общий делитель по формулам Евклида #2
http://codelab.ru/s/cpp/common_divis...ursive_euclid/
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
21.04.2011, 20:29     Рекурсия. Наименьший общий делитель по формулам Евклида #3
C++
1
2
3
4
5
6
int NOD (int a, int b)
{
    if ((a == 0) || (b == 0)) return a + b;
        else if (a >= b) NOD (a % b, b);
            else NOD (a, b % a);
}
Добавлено через 39 секунд
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
21.04.2011, 20:40  [ТС]     Рекурсия. Наименьший общий делитель по формулам Евклида #4
спасибо ребят. помогли

Добавлено через 6 минут
neske, вы ее тестировали? сомнительные выходные данные.
asics, аналогично..

Добавлено через 3 минуты
asics, проверил - правильно
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
21.04.2011, 20:54     Рекурсия. Наименьший общий делитель по формулам Евклида #5
У меня то что не так?
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
21.04.2011, 20:57  [ТС]     Рекурсия. Наименьший общий делитель по формулам Евклида #6
neske, да вроде все логично.. но проверяю на бумаге, у вас при входных данных 8 и 2 ответ ноль... пробую четные - ноль, нечетные 1.. бред.. сравните с кодом асикс, там ответы и на бумаге и в программе сходятся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2011, 21:00     Рекурсия. Наименьший общий делитель по формулам Евклида
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
21.04.2011, 21:00     Рекурсия. Наименьший общий делитель по формулам Евклида #7
Странно вы проверяете.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int NOD (int a, int b)
{
    if ((a == 0) || (b == 0)) return a + b;
        else if (a >= b) NOD (a % b, b);
            else NOD (a, b % a);
}
 
int main (void)
{
    std::cout << NOD (8, 2);
 
    return 0;
}
Миниатюры
Рекурсия. Наименьший общий делитель по формулам Евклида  
Yandex
Объявления
21.04.2011, 21:00     Рекурсия. Наименьший общий делитель по формулам Евклида
Ответ Создать тему
Опции темы

Текущее время: 09:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru