|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
||||||
Программа рекурсивного нахождения НОД. Не могу понять.03.01.2013, 23:14. Показов 1404. Ответов 10
Метки нет (Все метки)
Доброе время суток! Программа с рекурсией. Не могу понять строку:
Спасибо!
0
|
||||||
| 03.01.2013, 23:14 | |
|
Ответы с готовыми решениями:
10
Программа метода дихотомии для нахождения экстремумов не работает, не могу понять в чем ошибка Вычисление НОД. не могу понять где ошибка. Программа нахождения НОД двух чисел (нужны комментарии) |
|
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
|
|
| 03.01.2013, 23:20 | |
|
А чё тут объяснять ? вернуть значение этого выражения 2 * nod(x / 2, y / 2)
0
|
|
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|||||||
| 04.01.2013, 00:16 [ТС] | |||||||
|
Встретил его на одном сайте. Когда стал разбирать его, не совсем понял его суть. Наверное из-за того, что не имел опыта с рекурсиями. Вот именно на этой строке и застопорился щас. По моей логике 2 умножаем на один аргумент, затем на второй. Но, затем мы аргументы делим на 2, т.е. возвращаем числам прежнее значение. Как тогда мы выйдем из рекурсии? По разному пробовал... и изменял код и дополнял. Возможно "полез" не туда, после чего окончательно запутался на очевидном. Вот и решил спросить у людей, которые разберются. Больше не у кого. Спрашивал у знакомого, который учится на айти специальности (почти уже магистр), только понял что мой гуманитарный мозг лучше понимает чем его "айтишный", т.к. человек писал диплом по с++, а не знает даже толком как работает цикл. Вот полный код:
0
|
|||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||
| 04.01.2013, 00:35 | ||
|
0
|
||
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
| 04.01.2013, 00:39 | |
|
Не по теме: магистр, это недоспециалист по теме у вас конечное число которое вы получите будет 1, если оба числа четные, а наименьший для четных делитель кроме 1 это 2, поэтому 2 умножить на nod() который вернет 1, либо если они не четные то вернется результат Евклида nod(y, abs(y - x));
0
|
|
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|||
| 05.01.2013, 18:59 [ТС] | |||
|
К примеру х=8, у=20. Вызывается рекурсия -> 4,10 -> 2,5 -> 1,5 -> (abs 1 - 5) НОД = 4. Вроде бы все понял, одно не понимаю в каком месте происходит умножение на 2? Все получилось, логика есть))), но умножение на 2 впритык не увидел. Ссылка ваша пустая. Перед созданием топика весь день просидел над этим кодом. В интернете все облазил. И вики, и сайты, форумы и на вашем форуме смотрел... Дело в том, что именно НОД меня не интересует. Я знаю 2 простых алгоритма, вычисления НОДа. Это с помощью остатка чисел, или же вычитания меньшего от большего. Ничего сложного там нет. Меня интересует как работает именно эта строка в коде. Выше, как я уже написал, что вроде бы и все ясно, только умножения я не увидел.
0
|
|||
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
| 05.01.2013, 22:55 | |
|
(abs 1 - 5) вобщето это не конец, посмотрите код еще внимательней
Добавлено через 7 минут даже не то что не конец,это делатся не будет
0
|
|
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
||
| 07.01.2013, 21:59 [ТС] | ||
|
Если не тяжело, напишите, пожалуйста, что будет "происходить" с аргументами с момента вызова рекурсии если х=8, у=20 -> ?,? ->...
0
|
||
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|||||||||||
| 07.01.2013, 22:28 | |||||||||||
|
-> 4,10 -> 2,5 -> 1,5 -> это верно, причем мы запомнили что у нас перед этим два раза вызывалось
1
|
|||||||||||
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
| 08.01.2013, 02:57 [ТС] | |
|
0
|
|
| 08.01.2013, 02:57 | |
|
Помогаю со студенческими работами здесь
11
Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти Не могу понять почему программа не выводит результат (простейшая программа)
программа на рисование не могу понять Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|