Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
заставил Бендера
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,708
Записей в блоге: 6
1

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

21.04.2011, 20:16. Показов 1894. Ответов 6
Метки нет (Все метки)

Подскажите как выполнить рекурсию.
прога работает, но без рекурсии.
задание в приложении.

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;
}
Миниатюры
Рекурсия. Наименьший общий делитель по формулам Евклида  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2011, 20:16
Ответы с готовыми решениями:

Наименьший общий делитель. Алгоритм Евклида.
Наименьший общий делитель. Алгоритм Евклида. int protect(int maxnum,int minnum); int _tmain(int...

Наибольший общий делитель НОД по алгоритму Евклида
Написать программу вычисления наибольшего общего делителя НОД по алгоритму Евклида: если a&gt; b, то...

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

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

6
Freelance
Эксперт С++
2885 / 1820 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
21.04.2011, 20:27 2
http://codelab.ru/s/cpp/common... ve_euclid/
1
1549 / 915 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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 секунд
1
заставил Бендера
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,708
Записей в блоге: 6
21.04.2011, 20:40  [ТС] 4
спасибо ребят. помогли

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

Добавлено через 3 минуты
asics, проверил - правильно
0
1549 / 915 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
21.04.2011, 20:54 5
У меня то что не так?
0
заставил Бендера
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,708
Записей в блоге: 6
21.04.2011, 20:57  [ТС] 6
neske, да вроде все логично.. но проверяю на бумаге, у вас при входных данных 8 и 2 ответ ноль... пробую четные - ноль, нечетные 1.. бред.. сравните с кодом асикс, там ответы и на бумаге и в программе сходятся.
0
1549 / 915 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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;
}
Миниатюры
Рекурсия. Наименьший общий делитель по формулам Евклида  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2011, 21:00

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

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

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

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


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

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

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