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

Вычисление НОД рекурсией! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание односвязного списка из строки, полученной в файле http://www.cyberforum.ru/cpp-beginners/thread512090.html
Здравствуйте, имеется файл, который содержит некий текст. Необходимо подсчитать количество вхождений каждого слова в этот текст и результат поместить в односвязный список. Вот мой код #include "stdafx.h" #include <stdio.h> #include <string.h> struct Word{ int number; //число вхождений слова в текст char* word; //само слово Word* next; //указатель на следующую структуру };
C++ Управление предприятием Помогите пожалуйста с лабораторной: Предприятие содержит несколько подразделений, которые разбиты на отдельные сектора. Среди работников этих подразделений могут быть рабочие и служащие, отличающиеся формой оплаты труда. Каждый работник предприятия может иметь детей. О каждом из этих объектов хранится следующая информация: ОТДЕЛ:< код отдела, наименование, ФИО начальника, N телефона,... http://www.cyberforum.ru/cpp-beginners/thread512088.html
Списки и деревья C++
Помогите, плиз... чет у меня не получается с ней ничего((( Написать программу, которая вводит с клавиатуры список целых чисел, ищет максимальный элемент списка, затем вводит с клавиатуры сбалансированное дерево и считает глубину дерева. Заранее спасибо)
Все возможные a и b по формуле с вложенными циклами C++
Само задание: Любое натуральное число N (N>7) можно получить по формуле n = 3a + 5b, где a и b - натуральные числа. Исходя из полученного N найти все a и b. К сожалению я не могу понять самой сути задания. Может кто растолкует. И еще: как выполнить проверку на вводимое значение? Я попытался реализовать это вот так: main(){ int n, a, b; while (n > 7){ printf("Enter N (N >...
C++ Полиморфизм c++ http://www.cyberforum.ru/cpp-beginners/thread512075.html
Построить массив из указателей (базового типа) на объекты обоих классов. Выбрать объекты производного класса, отсортировать их и сложить как числа. Выбрать объекты базового класса, отсортировать их и сцепить их в одну строку, начиная с последнего и до первого.
C++ Реализовать команду Сd-смена поточного каталога в Borland C++ Задача: Реализовать команду СD-смена поточного каталога в Borland C++ (как в коммандной строке) подробнее

Показать сообщение отдельно
starikNAD
11 / 11 / 3
Регистрация: 01.12.2010
Сообщений: 71
04.03.2012, 18:30     Вычисление НОД рекурсией!
Функция может вызвать сама себя. Такой способ вычислений называется рекурсией.
Привожу пример работающей функции вычисления НОД:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* прототипы функций */
/* нахождение наибольшего общего делителя
   двух целых чисел
   используются свойства НОД:
   nod(n1,n2)=nod(n2,n1)
   nod(0, n2)=n2
   nod(n1,n2)=nod(n2,n3) где n3=n1%n2
*/
int nod(int n1, int n2);
...
/* вычисление НОД: рекурсия */
int nod(int n1, int n2)
{
  if(n1==0) return n2;
  return nod(n2%n1,n1);
}
при вызове функции (например, nod(8, 12) ) функция натыкается на return nod(4,8) - потому что 12%8=4. Тогда она запускает новый вызов функции nod. Далее она наткнется на вызов nod(4%8,8) и так далее - пока не обнаружится n1==0.
 
Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru