|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.12.2012, 21:54 | #1 |
Новичок
Джуниор
Регистрация: 21.12.2012
Сообщений: 4
|
Что вернет функция?
Задача на нахождение НОДа. Столкнулся с данным кодом. Не могу понять, как работают строки (4 последних else if) . А именно, как работает оператор return в данном случае, насколько я знаю, он возвращает только один аргумент.
Обучаюсь сам, ковыряю коды пока не "прочувствую" их. Кому не трудно - помогите пожалуйста. Спасибо. Код:
Последний раз редактировалось ACE Valery; 21.12.2012 в 22:52. |
21.12.2012, 22:15 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
А он и возвращает один аргумент. Только этот аргумент вычисляется непосредственно переде выполнением ретурна. Т.е, в качестве аргумента, выступает выражение.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
21.12.2012, 22:25 | #3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Есть еще такая веселая конструкция:
return nod(x, y / 2) , nod(x / 2, y); Вычислятся обе функции, вернется результат последней. |
21.12.2012, 22:42 | #4 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
надо попробовать
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
21.12.2012, 23:01 | #5 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Язык богат на чудеса.
Код:
|
21.12.2012, 23:27 | #6 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
У void'а есть конструктор от int'а? Забавно, очень забавно.
Раз уж такая пьянка, древнейший боян: Код:
Форматируйте код, будьте людьми.
|
22.12.2012, 01:39 | #7 | |
Новичок
Джуниор
Регистрация: 21.12.2012
Сообщений: 4
|
Цитата:
В последнем else if return nod(y, abs(y - x)) если числа будут 3 и 11, то показывает тоже единицу. Функцией abc мы вычисляем модуль числа. Т.е. по моей логике ( не правильной логике ) должно показать число 8. Я вообще думал что в этом коде есть ошибки, но работает все нормально. Дней 5 параллельно пытаюсь понять этот кусок кода (4 последних else if), и никак не могу осилить его. Благодарю, запомню :-) Последний раз редактировалось Max11111; 22.12.2012 в 01:41. |
|
22.12.2012, 03:43 | #8 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
О, тут про пьянки)
Вот, недавно втыкал: Код:
_________________ А насчет рекурсии, то попробуйте вместо "возвращает" говорить "вызывает". "Возвращает" корректнее, но "вызывает" - понятнее. I.e. функция с аргументами nod( 15, 16), вызывает nod(15,8), которая вызывает nod(15,4), которая вызывает nod(15,2), которая вызывает nod(15,1), и вот которая уже возвращает 1. Последний раз редактировалось Smogg; 22.12.2012 в 04:15. |
22.12.2012, 04:16 | #9 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
так что там будет 0.) Код:
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
|
22.12.2012, 04:47 | #10 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Про двойные форы
Код:
Форматируйте код, будьте людьми.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что за функция. | Predator199 | PHP | 6 | 22.10.2012 18:40 |
Что за функция? | X_RaY | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 11.09.2011 16:55 |
Что выполняет функция? | KingBelt | Общие вопросы C/C++ | 5 | 29.11.2010 09:06 |
Что за функция TimeGetTime??? | dolphin705 | Общие вопросы Delphi | 3 | 25.01.2010 19:14 |
что делает функция length() ??? | Paul_AG | Общие вопросы C/C++ | 4 | 11.05.2009 00:07 |