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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.74
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
#1

НОД для трех чисел. - C++

10.07.2009, 18:06. Просмотров 5875. Ответов 8
Метки нет (Все метки)

Здорова народ! Как найти найболшый общий делитель для трьох чисел?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
10.07.2009, 18:24     НОД для трех чисел. #2
НОД
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
10.07.2009, 18:39  [ТС]     НОД для трех чисел. #3
Спасибо я знаю за алгоритм евкліда но незнаю как найти нод для 3 чисел
ISergey
Maniac
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 1
10.07.2009, 19:05     НОД для трех чисел. #4
если правильно гуглить то можно найти
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
template < int A, int B, int C >
struct GCD {
    enum { value = GCD<A, C, B % C>::value };
};
 
template< int A, int B >
struct GCD <A, B, 0>{
    enum { value = GCD< B, A % B, 0 >::value };
};
 
template< int A >
struct GCD<A, 0, 0> {
    enum { value = A };
};
 
 
int main() 
{
    std::cout << "30, 15, 45 =  " << GCD<30, 15, 45>::value << std::endl;
    return 0;
}
метопрограммирование интересная штука..
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
10.07.2009, 19:53     НОД для трех чисел. #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main(int argc, char * argv [])
{
    int one, two, three, del = 1;
 
    std::cout << "Enter Three Number: ";
    std::cin  >> one >> two >> three;
 
    for(int i = 1; i <= one; i++)
    {
        if(one % i == 0 && two % i == 0 && three % i == 0)
        {
            del = i;
        }
 
    }
 
    std::cout << "NOD: " << del << "\n";
 
    return 0;
}
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.07.2009, 20:33     НОД для трех чисел. #6
Пусть есть числа A, B, C.
Пусть есть функция НОД(A,B) от двух чисел.
Тогда очевидно что НОД(A,B,C) = НОД( НОД(A,B), C )
<Norton>
Отдыхающий:)
94 / 91 / 10
Регистрация: 05.04.2009
Сообщений: 188
10.07.2009, 20:50     НОД для трех чисел. #7
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
#include <iostream>
#include <conio>
using namespace std;
int nod(int a,int b);
int main()
{
    int a,b,c;
        cout<<"a = ";
        cin>>a;
        cout<<"b = ";
        cin>>b;
        cout<<"c = ";
        cin>>c;
    cout<<nod(nod(a,b),c);
    getch();
    return 0;
}
int nod(int a,int b)
{
    while(a!=b)
        if(a>b)
        a-=b;
    else
        b-=a;
    return a;
}
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
10.07.2009, 23:21  [ТС]     НОД для трех чисел. #8
спасибо вы мне много помогли
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2009, 11:17     НОД для трех чисел.
Еще ссылки по теме:

НОД для нескольких чисел C++
C++ Для целых чисел N и M найти НОД
Найти ошибку в программе вычисления НОД трех чисел. C++
C++ НОД трех чисел
C++ НОД трех чисел

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

Или воспользуйтесь поиском по форуму:
Pavelzii
0 / 0 / 0
Регистрация: 25.09.2009
Сообщений: 3
25.09.2009, 11:17     НОД для трех чисел. #9
Такая хрень тоже должна прокатить, но пример Search.. клевый:
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
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
// Определение НОД для 3-ёх чисел
int nod(int a, int b);
 
int main(){
   int a=0;
   int b=0;
   int c=0;
    while(1){
        cout<<"vvedite a ";
        cin>>a;
            if (a==0)
            break;
            cout<<"vvedite b ";
            cin>>b;
            cout<<"vvedite c ";
            cin>>c;
        cout<<"NOD= "<<nod(nod(a,b),c)<<endl;
        }
return 0;
}
int nod(int a, int b){ 
  int t=a%b;
  if (t==0)
  return abs(b);
  else 
  return nod(b,t);
}
Yandex
Объявления
25.09.2009, 11:17     НОД для трех чисел.
Ответ Создать тему
Опции темы

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