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

Наибольший общий делитель - C++

Восстановить пароль Регистрация
 
kudpro
28 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 60
26.11.2011, 08:42     Наибольший общий делитель #1
Описать рекурсивную функцию NOD(A, B) целого типа, находящую
наибольший общий делитель (НОД) двух целых положительных чисел A
и B, используя алгоритм Евклида:
НОД(A, B) = НОД(B, A mod B), если B 6= 0; НОД(A, 0) = A.
С помощью этой функции найти НОД(A, B), НОД(A, C), НОД(A,D), если
даны числа A, B, C, D.

Добавлено через 6 часов 24 минуты
Актуально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 08:42     Наибольший общий делитель
Посмотрите здесь:

Наибольший общий делитель C++
C++ наибольший общий делитель
Наибольший общий делитель на С++ C++
Наибольший общий делитель (НОД) C++
Найдите наибольший общий делитель C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.11.2011, 10:08     Наибольший общий делитель #2
C++
1
2
3
4
long Nod(long a, long b)
{
   return a && b ? (a > b ? Nod(a%b, b) : Nod(a, b%a)) : (a ? a : b);
}
kudpro
28 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 60
26.11.2011, 11:02  [ТС]     Наибольший общий делитель #3
Подправьте если что-то не так пожалуйста.
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
// main.c
#include <iostream>
#include <cmath>
 
using namespace std;
 
long Nod(long a, long b)
{
    return a && b ? (a > b ? Nod(a%b, b) : Nod(a, b%a)) : (a ? a : b);
}
 
int main()
{
    cout << "Введите по порядку - A,B,C,D: ";
    int a,b,c,d;
    cin >> a >> b >> c >> d;
    cout << "A: " << a << endl << "B: " << b << endl << "C: " << c << endl << "D: " << d << endl;
    cout << "НОД (A,B): " << Nod(a,b) << endl;
    b=c;
    cout << "НОД (A,C): " << Nod(a,b) << endl;
    b=d;
    cout << "НОД (A,D): " << Nod(a,b) << endl;
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.11.2011, 11:34     Наибольший общий делитель #4
Вроде все правильно. Только можно сразу так писать:
C++
1
2
3
    cout << "НОД (A,B): " << Nod(a,b) << endl;
    cout << "НОД (A,C): " << Nod(a,c) << endl;
    cout << "НОД (A,D): " << Nod(a,d) << endl;
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
26.11.2011, 11:54     Наибольший общий делитель #5
Цитата Сообщение от kudpro Посмотреть сообщение
// main.c
может main.C
Yandex
Объявления
26.11.2011, 11:54     Наибольший общий делитель
Ответ Создать тему
Опции темы

Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru