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

Программа рекурсивного нахождения НОД. Не могу понять. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наибольшее/наименьшее значение типа http://www.cyberforum.ru/cpp-beginners/thread752189.html
Где то была тема по этому поводу но по ключевым словам которые в заголовке темы найти не удалось, собственно вопрос , где взять наибольшее и наименьшее значения типа
C++ Как правильно организовать чтение и запись файла? Для записи и чтения файла я использую класс CFile. Допустим при открытии диалога происходит чтение файла, и при закрытии его - запись в файл, как-то так: void CMyDlg::OnInitDialog() { CFile file("file.txt", CFile::modeRead); CArchive ar(&file, CArchive::load); CString s; int x; ar >> x; http://www.cyberforum.ru/cpp-beginners/thread752167.html
C++ Создать очередь с приоритетом (Ошибка)
Здравствуйте, Друзья! Стоящая задача (создать очередь с приоритетом) выполнена, но есть ошибка. Друзья, гляньте пожалуйста "свежим взглядом", где она (а она точно есть): #include <iostream> #include <conio.h> using namespace std; class QueuePrior { int MaxLength; int length;
Вычисление функций с использованием их разложения в степенной ряд ощибки исправте пожалуйста C++
Постановка задачи Для х, изменяющегося от a до b (интервал целиком лежит внутри интервала, указанного в третьей колонке) с шагом , вычислить функцию y=f(x), используя ее разложение в степенной ряд (вторая колонка) в двух случаях: а) для заданного количества слагаемых N (величина зависит от свойств степенного ряда, примерное значение N указано в четвёртой колонке); б) для заданной точности э...
C++ Вывод на экран данных в виде таблицы http://www.cyberforum.ru/cpp-beginners/thread752132.html
Помогите сделать нормальный вывод в консоли, чтобы выводило все ровно а не так как на скриншоте! За вывод отвечает функция Show #include <iostream> #include <conio.h> #include<windows.h> #include<iomanip.h> using namespace std;
C++ Информация по темам билетов Всем доброго времени суток. Готовлюсь к сессии, все шло хорошо, но тут увидел несколько билетов которые мне не знакомы и более того, ищу информацию в интернете, после чего путаюсь, может мне кто помочь, может ссылкой, может литературой какой нибудь. 32. Работа с файлами в С, примеры. 33. Работа с файлами в C++, примеры. 34. Бинарные файлы, операции передачи информации. 35. Функции для... подробнее

Показать сообщение отдельно
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113
05.01.2013, 18:59  [ТС]     Программа рекурсивного нахождения НОД. Не могу понять.
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Мы входим в nod с значениями, уменьшенными в два раза. Этот нод возможно вызовет по рекурсии опять себя - но со значением еще меньше. В итоге настанет тот момент, когда не будет больше рекурсионного вызова и просто вернется какое-то значение. И пойдет такой каскадный ретурн, дойдет до рассматриваемого - nod(x/2, y/2) вернет какое-то значение, оно умножится на два и полученное значение вернется к предыдущему шагу рекурсии и т.д. Лучше объяснить не смогу наверно.
Вчера снова решил подумать над этим кодом, когда время появилось. Что получилось:
К примеру х=8, у=20. Вызывается рекурсия -> 4,10 -> 2,5 -> 1,5 -> (abs 1 - 5) НОД = 4. Вроде бы все понял, одно не понимаю в каком месте происходит умножение на 2? Все получилось, логика есть))), но умножение на 2 впритык не увидел.

Цитата Сообщение от Nixy Посмотреть сообщение

Не по теме:

магистр, это недоспециалист

а вы прошли на википедию, почитали? я же дал вам ссылку ( а она не рабочая ) ну сами на вики почитаете, попробуйте тут темы покапать, вы не первый кому НОД нужен
по теме у вас конечное число которое вы получите будет 1, если оба числа четные, а наименьший для четных делитель кроме 1 это 2, поэтому 2 умножить на nod() который вернет 1, либо если они не четные то вернется результат Евклида nod(y, abs(y - x));

Ссылка ваша пустая. Перед созданием топика весь день просидел над этим кодом. В интернете все облазил. И вики, и сайты, форумы и на вашем форуме смотрел... Дело в том, что именно НОД меня не интересует. Я знаю 2 простых алгоритма, вычисления НОДа. Это с помощью остатка чисел, или же вычитания меньшего от большего. Ничего сложного там нет. Меня интересует как работает именно эта строка в коде. Выше, как я уже написал, что вроде бы и все ясно, только умножения я не увидел.
 
Текущее время: 01:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru