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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.77
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
#1

вычисление нод - C++

12.04.2011, 12:59. Просмотров 3337. Ответов 24
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
int nod(int x, int y)
 
{
        if ((y == 0) || (x==0))
        return x;
        else        
        [B]return nod(y, x % y);[/B]
}
можно объяснить вот про нод немножко, в частности в выделенной строке ниче не понимаю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2011, 12:59     вычисление нод
Посмотрите здесь:

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. C++
C++ Заданы натуральные числа m и n. Найти НОД(m,n) Составить программу которая будет содержать рекурсивную функцию вычисления НОД......
Вычисление НОД. не могу понять где ошибка. C++
C++ Вычисление НОД рекурсией!
C++ Вычисление НОД
C++ Рекурсия: вычисление НОД
C++ Вычисление НОД двух натуральных чисел (рекурсия)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
12.04.2011, 23:06  [ТС]     вычисление нод #21
silent_1991, как вот подклинит иогда...смотрю- и все равно не очень понимаю разворот рекурсии, что откуда берется:
8. 7 + 1 = 8;
7: 8 + 1 = 9;
6. 9 + 1 = 10;
5. 10 + 1 = 11;
4. 11 + 1 = 12;
3. 12 + 1 = 13;
2. 13 + 1 = 14;
1. 14 + 1 = 15.

мда...надеюсь вдохновение придет
silent_1991
Эксперт С++
4952 / 3028 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
12.04.2011, 23:10     вычисление нод #22
То, что в пункте 8 при свёртке рекурсии стоит после равно (т.е. 8), подставится в пункт 8 при развороте рекурсии вместо summa. Получится 8 + 1 = 9. Эта 9 вернётся в пункт 7 и подставится вместо summa, получим 9 + 1 = 10. И т.д.
fruktik
32 / 32 / 3
Регистрация: 03.03.2011
Сообщений: 302
16.04.2011, 16:04  [ТС]     вычисление нод #23
silent_1991, ахахах,...прикалываете, дошло)))

Добавлено через 2 минуты
Цитата Сообщение от ailia Посмотреть сообщение
p.s.: НОД - наибольший общий делитель
ну спасибо, открыли))...мне кажется это еще все с 5-6 класса знают, когда находят эти ноды и ноки раскладыванием на простые множители
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.04.2011, 18:26     вычисление нод #24
Shortest code
C++
1
2
templete<typename T>
T gcd(const T &a, const &T b) { return a ? gcd(b%a, a) : b; }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2011, 18:31     вычисление нод
Еще ссылки по теме:

C++ Вычисление НОД по алгоритму Евклида (как организовать код?)
Вычисление нок и нод переменных натуральных чисел C++
Вычисление НОД ряда натуральных чисел C++
Последовательность натуральных чисел, вычисление их НОД методом Евклида C++
C++ Вычисление НОД и НОК

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

Или воспользуйтесь поиском по форуму:
silent_1991
16.04.2011, 18:31     вычисление нод
  #25

Не по теме:

outoftime, не вижу смысла в шаблонности таких функций. А что, если я захочу вычислить НОД двух строк? Лучше уж явно перегрузить функцию для всех возможных типов параметров, благо их не много, более "короткие" параметры всё равно автоматически будут приведены к более "длинным". Поэтому достаточно описать функцию для максимального long long, а также, если возникнет необходимость, перегрузить для особых типов (например, для какого-нибудь самописного Verylong)

Yandex
Объявления
16.04.2011, 18:31     вычисление нод
Ответ Создать тему
Опции темы

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