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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
#1

Составить рекурсивную функцию вычисления НОД - C++

20.12.2012, 23:35. Просмотров 1114. Ответов 11
Метки нет (Все метки)

Даны натуральные числа n и m; Найти НОД(n,m). составить рекурсивную функцию вычисления НОД, основанную на соотношении НОД(n, m)=НОД(m, r), где r- остаток от деления n на m(n>m)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 23:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить рекурсивную функцию вычисления НОД (C++):

Заданы натуральные числа m и n. Найти НОД(m,n) Составить программу которая будет содержать рекурсивную функцию вычисления НОД...... - C++
Заданы натуральные числа m и n. Найти НОД(m,n) Составить программу которая будет содержать рекурсивную функцию вычисления НОД, которая...

Написать рекурсивную функцию вычисления НОД - C++
подскажите, пожалуйста, как написать рекурсивную функцию вычисления НОД, используя алгоритм Эвклида: НОД (a, b) = НОД (b, a%b). в с++???

Найти НОД используя рекурсивную функцию вычисления - C++
Даны натуральные числа n, m; найти НОД(m, n). Написать программу, использующую рекурсивную функцию вычисления НОД, основанную на...

9.Составить рекурсивную функцию вычисления - C++
11. Составить рекурсивную функцию вычисления Для получения функции в явном виде рассмотрим ее последовательные значения:f(0)=1, f(1)=2,...

Написать рекурсивную функцию НОД - C++
Здравствуйте, добрые люди! С наступающим Вас!!! Помогите плиз с решением на С, я не понимаю даже сути задачи, не говоря даже о том, как ее...

Написать рекурсивную функцию вычисления - C++
Помогите пожалуйста!

11
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.12.2012, 23:38 #2
пробовали найти на форуме ? думаете вы первый кому нужен НОД? тем более рекурсией
0
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
20.12.2012, 23:50  [ТС] #3
Цитата Сообщение от Nixy Посмотреть сообщение
пробовали найти на форуме ? думаете вы первый кому нужен НОД? тем более рекурсией
на форуме туфта, которая не компилируется, а сам я мало в этом понимаю, хотя очень хотелось бы понять
а может и не туфта, в любом случае понять хочется, а никто не объяснит, все умные, но занятые, "всё есть на форуме"....коль было бы разъяснено, я б уже давно настрочил что надо сам
0
komand0
8 / 8 / 0
Регистрация: 20.06.2012
Сообщений: 225
20.12.2012, 23:58 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int nod(int n, int m)
{
    if(m==0)
        return n;
    if(n>m)
        return nod(m,n%m);
    else
        return nod(n,m%n);
}
 
int main ()
{
    std::cout << nod(12,8);
    system("PAUSE");
    return 0;
}
Добавлено через 45 секунд
строго по тому что вы написали в задании
0
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
21.12.2012, 00:10 #5
вобще то НОД определен для n и m не нулевых
0
komand0
8 / 8 / 0
Регистрация: 20.06.2012
Сообщений: 225
21.12.2012, 00:19 #6
Цитата Сообщение от radamaerl Посмотреть сообщение
вобще то НОД определен для n и m не нулевых
если вы о
C++
1
2
 if(m==0)
        return n;
то это условие выхода из рекурсии
0
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
21.12.2012, 00:58 #7
в этом случае НОД(12,0)=12
Эвклид в шоке
ну это к слову, просто чтобы человек понимал где препод может придраться и смог объяснить
тогда можно упростить
C++
1
2
3
4
5
6
int nod(int n, int m)
{
    if (m==0)
        return n;
    return nod(m,n%m);
}
ну не упростить
уменьшить длину кода
0
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
21.12.2012, 01:12  [ТС] #8
вопрос такой, что такое вообще - этот НОД?
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,880
Записей в блоге: 3
Завершенные тесты: 1
21.12.2012, 01:15 #9
Цитата Сообщение от Mark33 Посмотреть сообщение
вопрос такой, что такое вообще - этот НОД?
Наибольший Общий Делитель
0
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
21.12.2012, 01:21 #10
Mark33, ты чисто по приколу для себя разбираешься или сдать гдето надо?
0
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
21.12.2012, 12:39  [ТС] #11
Цитата Сообщение от radamaerl Посмотреть сообщение
Mark33, ты чисто по приколу для себя разбираешься или сдать гдето надо?
Чисто по приколу ДА, немного
первокур я, разобраться просто надо и хочется
да в вообще, задачку эту сдать бы
0
radamaerl
27 / 6 / 1
Регистрация: 20.12.2012
Сообщений: 39
21.12.2012, 13:08 #12
ну тогда бери любой предложенный вариант и чтобы понять то рекурсивная функция должна иметь выход то есть гдето принимать конечное числовое значение
в данном случае ноль
но ноль это плохо для определения НОД (я писал выше)
лучше тогда так
C++
1
2
3
4
5
6
int nod(int n, int m)
{
    if (n%m==0)
        return m;
    return nod(m,n%m);
}
здесь получается как
если m сразу делитель n то понятно что m наибольший общий делитель (НОД)
иначе включаем рекурсию
если в функцию передается ноль то программа выполняется с ошибкой (изза определения НОД)

Добавлено через 12 минут
короче если вводить по твоему условию (n>m) и n,m не равны 0 то есть грамотно то работает все
в последнем случае просто условий меньше в самой функции и m не может быть равен 0
и четко по по твоему условию поиска НОД
НОД(n, m)=НОД(m, r), где r- остаток от деления n на m(n>m)
0
21.12.2012, 13:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2012, 13:08
Привет! Вот еще темы с ответами:

Написать рекурсивную функцию вычисления полинома: - C++
Написать рекурсивную функцию для вычисления полинома: G0(x)=1; G1(x)=x-1 Gn(x)=(x-2n+1)Gn-1(x) –(n-1)2Gn-2(x) даже мыслей нет в...

Написать рекурсивную функцию вычисления факториала - C++
1. Написать рекурсивную функцию вычисления факториала. помогите понять рекурсию

Написать рекурсивную функцию вычисления сочетания n то k - C++
Вот проблемка Написать рекурсивную функцию вычисления сочетания n то k.

Описать рекурсивную функцию вычисления значения по формуле - C++
Рекурсия


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru