Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IIIa66uMEM6eP
заставил Бендера
437 / 293 / 10
Регистрация: 05.12.2010
Сообщений: 1,659
Записей в блоге: 6
#1

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

21.04.2011, 20:16. Просмотров 1196. Ответов 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
Миниатюры
Рекурсия. Наименьший общий делитель по формулам Евклида  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 20:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рекурсия. Наименьший общий делитель по формулам Евклида (C++):

Наименьший общий делитель. Алгоритм Евклида. - C++
Наименьший общий делитель. Алгоритм Евклида. int protect(int maxnum,int minnum); int _tmain(int &amp;n, int &amp;m); int nod (int n,...

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

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

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

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

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

6
asics
Freelance
Эксперт С++
2854 / 1789 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
21.04.2011, 20:27 #2
http://codelab.ru/s/cpp/common_divisor:recursive_euclid/
1
neske
1520 / 887 / 89
Регистрация: 26.03.2010
Сообщений: 3,047
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
IIIa66uMEM6eP
заставил Бендера
437 / 293 / 10
Регистрация: 05.12.2010
Сообщений: 1,659
Записей в блоге: 6
21.04.2011, 20:40  [ТС] #4
спасибо ребят. помогли

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

Добавлено через 3 минуты
asics, проверил - правильно
0
neske
1520 / 887 / 89
Регистрация: 26.03.2010
Сообщений: 3,047
21.04.2011, 20:54 #5
У меня то что не так?
0
IIIa66uMEM6eP
заставил Бендера
437 / 293 / 10
Регистрация: 05.12.2010
Сообщений: 1,659
Записей в блоге: 6
21.04.2011, 20:57  [ТС] #6
neske, да вроде все логично.. но проверяю на бумаге, у вас при входных данных 8 и 2 ответ ноль... пробую четные - ноль, нечетные 1.. бред.. сравните с кодом асикс, там ответы и на бумаге и в программе сходятся.
0
neske
1520 / 887 / 89
Регистрация: 26.03.2010
Сообщений: 3,047
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
Миниатюры
Рекурсия. Наименьший общий делитель по формулам Евклида  
21.04.2011, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2011, 21:00
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru