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

Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида) - C++

Восстановить пароль Регистрация
 
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
18.06.2013, 00:00     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида) #1
Доброго времени суток.
Есть определенная функция определения НОД(наибольшего общего делителя) числа алгоритмом Евклида:
C++
1
2
3
4
5
6
7
8
9
int nod(int a, int b)
{
    if(a == b)
        return a;
    else if(a > b)
        return nod(a - b, b);
    else
        return nod(a, b - a);
}
Он вроде бы ясен, но в то же время не понятен. И так вопрос: как же разобраться с рекурсией, дабы потом не было проблем с рекуррентными задачами? Сам алгоритм работы return'ов в данной задаче.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 00:00     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида)
Посмотрите здесь:

C++ Написать функции рекурсивной и не рекурсивной реализации алгоритма Евклида нахождения наибольшего общего делителя (НОД) двух натуральных чисел
Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел C++
C++ нахождение наибольшего общего делителя для 6-и чисел
C++ Поиск наибольшего общего делителя
Написать рекурсивную функцию вычисления Наибольшего общего делителя C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikoys
26 / 26 / 6
Регистрация: 29.12.2010
Сообщений: 90
18.06.2013, 00:06     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида) #2
А что именно здесь неясно?
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
18.06.2013, 00:08     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида) #3
Почитай вообщем про return. Может быть поймёте в чем его суть.
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
18.06.2013, 00:10     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида) #4
а здесь очень просто
програма смотрит на числа делает сравнение и потом делает действие
конец будет тогда когда a == b;
return -> повторять действие
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
18.06.2013, 00:19     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида) #5
newyork7776, ну если копнуть поглубже, то не только это)
Yandex
Объявления
18.06.2013, 00:19     Рекурсия (функция определения НОД (наибольшего общего делителя) числа алгоритмом Евклида)
Ответ Создать тему
Опции темы

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