![]() |
|
Модераторы: bsa |
![]()
|
|
| danilkramatorsk |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 22.12.2012 Репутация: нет Всего: нет |
вот
возвращает ф-ию nod с параметрами первый b второе ( a % b ) , а в ответе выходит 1 параметр ( a % b ). Как это работает? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
нет. вызывает функцию nod () и возвращает результат её работы. получается рекурсивный вызов (когда функция вызывает саму себя). т.е. эквивалентно
так что nod() последовательно вызывает саму себя (полезно посмотреть в отладке стек вызовов, чтобы лучше понимать что происходит). поскольку в процессе вызова значения аргументов уменьшаются, наступает момент, когда остаток от деления, т.е. a % b станет равным нулю. тогда сработает условие, и функция вернет а (равное значению НОД) в вызвавшую её функцию, та опять вернет и т.д. до самого первого вызова. Это сообщение отредактировал(а) baldina - 27.2.2013, 17:22 |
|||
|
||||
| danilkramatorsk |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 22.12.2012 Репутация: нет Всего: нет |
baldina, ага, понял как выполняется, но все равно не пойму зачем нам
b перед a % b? выводится значение рекурсии a % b.. Это сообщение отредактировал(а) danilkramatorsk - 27.2.2013, 18:19 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
у nod() два параметра. в вызове nod (b, a % b); первый параметр - значение b, второй - a % b
см. http://e-maxx.ru/algo/euclid_algorithm |
|||
|
||||
| danilkramatorsk |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 22.12.2012 Репутация: нет Всего: нет |
baldina,
я это понял, но почему при выводе ответа он не выводится, а выводится только а%b? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
теперь не понял я, куда он не выводится.
|
|||
|
||||
| danilkramatorsk |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 22.12.2012 Репутация: нет Всего: нет |
baldina, ну вот смотри,
вот у нас 1 параметр = b , а второй a % b в ответ выводится только a % b. Вопрос, куда делся 1 параметр = b? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |