Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Наибольшее/наименьшее значение типа https://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;
C++ Создать очередь с приоритетом (Ошибка) Здравствуйте, Друзья! Стоящая задача (создать очередь с приоритетом) выполнена, но есть ошибка. Друзья, гляньте пожалуйста "свежим взглядом", где она (а она точно есть): #include <iostream> #include <conio.h> using namespace std; class QueuePrior { int MaxLength; int length; https://www.cyberforum.ru/ cpp-beginners/ thread752162.html C++ Вычисление функций с использованием их разложения в степенной ряд ощибки исправте пожалуйста https://www.cyberforum.ru/ cpp-beginners/ thread752143.html
Постановка задачи Для х, изменяющегося от a до b (интервал целиком лежит внутри интервала, указанного в третьей колонке) с шагом , вычислить функцию y=f(x), используя ее разложение в степенной ряд (вторая колонка) в двух случаях: а) для заданного количества слагаемых N (величина зависит от свойств степенного ряда, примерное значение N указано в четвёртой колонке); б) для заданной точности э...
C++ Вывод на экран данных в виде таблицы
Помогите сделать нормальный вывод в консоли, чтобы выводило все ровно а не так как на скриншоте! За вывод отвечает функция Show #include <iostream> #include <conio.h> #include<windows.h> #include<iomanip.h> using namespace std;
C++ Информация по темам билетов https://www.cyberforum.ru/ cpp-beginners/ thread752129.html
Всем доброго времени суток. Готовлюсь к сессии, все шло хорошо, но тут увидел несколько билетов которые мне не знакомы и более того, ищу информацию в интернете, после чего путаюсь, может мне кто помочь, может ссылкой, может литературой какой нибудь. 32. Работа с файлами в С, примеры. 33. Работа с файлами в C++, примеры. 34. Бинарные файлы, операции передачи информации. 35. Функции для...
C++ получение палиндрома рассмотрим некоторое натуральное число. Если это не палиндром, то изменим порядок его цифр на обратный и сложим исходное число с получившимся. Если сумма не палиндром, то над ней повторяется то же действие и т.д., пока не получится палиндром. Даны натуральные числа k,m,l(k<1). Проверить, верно ли, что для любого натурального числа из диапазона от k до 1 процесс завершается не позднее, чем после m... https://www.cyberforum.ru/ cpp-beginners/ thread752114.html C++ функция Replace
Разработайть функцию, которая заменяет натуральное число на количество единиц в нем. (Функция должна изменять само число, переданное ей в качестве параметра)
C++ Для заданного целого числа N определить цифру а, наиболее часто встречающуюся в числе. Сформировать одномерный массив из 5 элементов: a, а2, а3 Хелпуйте нужна помощь! Задание следующие: Для заданного целого числа N определить цифру а, наиболее часто встречающуюся в числе. Сформировать одномерный массив из 5 элементов: a, а2, а3, а4, а5. https://www.cyberforum.ru/ cpp-beginners/ thread752098.html C++ Не удается запустить программу Нашел нужную программу, но запустить не могу выдает ошибку "fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory" . Помогите, нужно срочно, а то вилы:help:. Само задание вот: "Описать класс «студенческая группа». Предусмотреть возможность работы с переменным числом студентов, поиска студента по фамилии или номеру телефона, вывода списка студентов. Написать... https://www.cyberforum.ru/ cpp-beginners/ thread752094.html
Шаблон класса,ошибка TEMPLATE C++
Вечер добрый,с таким вопросом. Задание: шаблон класса "однонарпавленный линейный список". И использовать его при составлении программы, которая содержит текущую информацию о заявках на авиабилеты: - пункт назначения, - номер рейса, - фамилию и инициалы пассажира, - желаемую дату вылета. Программа должна обеспечивать: - хранение всех заявок в виде списка, - добавление заявок,
C++ Работа с файлами. Вывести победителя с ФИО с максимальным баллом... (исправить) Помогите пож исправить код, он должен выводить победителя с ФИО с максимальным баллом,потом у кого 2 место и 3. Вот код: #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <iostream.h> #define DL_NUM 3 /* nomer uchastnica */ #define DL_FIO 25 /* dlina polya familii v fayle */ https://www.cyberforum.ru/ cpp-beginners/ thread752082.html
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
04.01.2013, 00:16  [ТС] 0

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

04.01.2013, 00:16. Показов 1241. Ответов 10
Метки (Все метки)

Ответ

Цитата Сообщение от Игорь с++ Посмотреть сообщение
А чё тут объяснять ? вернуть значение этого выражения 2 * nod(x / 2, y / 2)
Обычный алгоритм Евклида на нахождение НОДа - понимаю. Бинарный - нет.
Встретил его на одном сайте. Когда стал разбирать его, не совсем понял его суть. Наверное из-за того, что не имел опыта с рекурсиями. Вот именно на этой строке и застопорился щас. По моей логике 2 умножаем на один аргумент, затем на второй. Но, затем мы аргументы делим на 2, т.е. возвращаем числам прежнее значение. Как тогда мы выйдем из рекурсии?
По разному пробовал... и изменял код и дополнял. Возможно "полез" не туда, после чего окончательно запутался на очевидном. Вот и решил спросить у людей, которые разберются. Больше не у кого.
Спрашивал у знакомого, который учится на айти специальности (почти уже магистр), только понял что мой гуманитарный мозг лучше понимает чем его "айтишный", т.к. человек писал диплом по с++, а не знает даже толком как работает цикл.


Вот полный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <math.h>
 
int nod(int, int);
 
using namespace std;
 
int main()
{
   int int1, int2;
   
   cout << "//Finding of the greatest general divider" << endl << endl;
   cout << "Enter two whole numbers: " << endl;
   cin >> int1 >> int2;
   cout << "NOD: " << nod(int1, int2) << endl;
   
   return 0;
}
 
int nod(int x, int y)
{
   if(x == 0)
      return y;
   else if(y == 0)
      return x;
   else if(x == y)
      return x;
   else if(x == 1 || y == 1)
      return 1;
   else if(x % 2 == 0 && y % 2 == 0)
      return 2 * nod(x / 2, y / 2);
   else if(x % 2 == 0 && y % 2 != 0)
      return nod(x / 2, y);
   else if(x % 2 != 0 && y % 2 == 0)
      return nod(x, y / 2);
   else if(x % 2 != 0 && y % 2 != 0)
      return nod(y, abs(y - x));
}


Вернуться к обсуждению:
Программа рекурсивного нахождения НОД. Не могу понять. C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2013, 00:16
Готовые ответы и решения:

Программа метода дихотомии для нахождения экстремумов не работает, не могу понять в чем ошибка
program dihotomia; var a0,b0,eps,l,y,z,fy,fz,X:real; begin writeln ('введите a0 ');...

Вычисление НОД. не могу понять где ошибка.
#include &quot;stdio.h&quot; #include &quot;conio.h&quot; int NOD (int x,int y) { while (x!=y) { if (x&gt;y)...

Программа нахождения НОД двух чисел (нужны комментарии)
Только недавно начал изучать С++, не могу осмыслить блок инструкций после while. Можете,...

Вычисление НОД - в чем преимущество рекурсивного подхода перед нерекурсивным?
Даны натуральные числа n, m; найти НОД(n, m). Использовать программу, включающую рекурсивную...

10
04.01.2013, 00:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2013, 00:16
Помогаю со студенческими работами здесь

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n&lt;=1000). Упорядочить последовательность...

Не могу понять почему программа не выводит результат (простейшая программа)
Здравствуйте уважаемые форумчане! Я начал изучать C++ при помощи книги. На днях я столкнулся со...

Найти НОД трёх чисел, используя рекурсивную функцию нахождения НОД двух чисел
Помогите решить. 8. Найти НОД трёх чисел, используя рекурсивную функцию нахождения НОД двух...

программа на рисование не могу понять
делфи.Составить проект на тему «Построение прямоугольника заданной площади». Первая форма содержит...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru