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

Нод - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 58, средняя оценка - 4.67
eFilipchik
Сообщений: n/a
18.04.2010, 23:44     Нод #1
Даны два числа a и b. Найти их НОД (наибольший общий делитель).
Название Размерность Тип
a 8 вх
b 8 вх
res 8 вых






На входе числа a и b.
На выход res подать НОД чисел a и b.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2010, 23:44     Нод
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vet
 Аватар для vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
19.04.2010, 03:39     Нод #2
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>
using namespace std;
int nod(int x, int y){ 
    if (y == 0)  
    return x;  
    return nod(y, x % y);}
    
    int main()
    {
        int a,b;
        cout << "Enter a,b\n";
         cin >> a;
        cin >> b;
        cout << "Name   " << "Size  " << "Type\n";
        cout << "a      " << a << "   " << "  Input\n";
        cout << "b      " << b << "   " << "  Input\n";
        
        cout << "NOD    " << nod(a,b) << "     Output";
        
        cin.get();
        cin.get();
    }
Добавлено через 26 секунд
Рекурсивный алгоритм Евклида для нахождения нод
Kiber
 Аватар для Kiber
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 14
11.05.2010, 15:17     Нод #3
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>
using namespace std;
int nod(int x, int y){ 
    if (y == 0)  
    return x;  
    return nod(y, x % y);}
    
    int main()
    {
        int a,b;
        cout << "Enter a,b\n";
         cin >> a;
        cin >> b;
        cout << "Name   " << "Size  " << "Type\n";
        cout << "a      " << a << "   " << "  Input\n";
        cout << "b      " << b << "   " << "  Input\n";
        
        cout << "NOD    " << nod(a,b) << "     Output";
        
        cin.get();
        cin.get();
    }
Простите ,а как можно сделать без использования функции NOD и для нескольких (возможно произвольное количество) чисел?
Вот мой код:
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
#include <stdio.h>
#include <conio.h>
main()
{
 
unsigned int i,n,s=1,a,b,c,d;
printf("n=");
scanf("%u",&n);
for(i=1;i<=n;i++)
{
printf("a%u=",i);
scanf("%f",&a);
while (d!=0){
if (b>c)
{
d=b%c;
b=c;
c=d;
if(s%d!=0)s=s*d;
 }
 else {
 d=c%b;
 b=c;
 d=b;
 if(s%d!=0)s=s*d;
 }
 
 
 }
}
 
printf("s=%u",s);
getch();
return 0;
}
yskra
Сообщений: n/a
02.12.2013, 14:32     Нод #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
24
25
26
27
28
29
30
int main()
{
 int n, i, j, v, min=999;
 cout<<"Kolichestvo elementov v massive:";
 cin>>a[i];
 int *a=new int[n];
 for(i=0; i<=n; i++)
 {
   cout<<i<<" element";
   cin>>a[i];
 }
 for(i=0; i<=n; i++)
 {
   if(a[i]<min)  min=a[i];
 }
 for(i=min; i>=1; i--)
 {
   v=i;
   for(j=0; j<=n; j++)
   {
     if(!(!(a[l]%v))) break;
     if(j=n)
     {
       cout<<"\nNOD="<<v;
       getch();
       return 0;
     }
   }
 }
}
Добавлено через 4 минуты
Я основывала ее на том что НОД все равно не может быть больше минимального числа. Но зато ее сложность возрастает при поиске минимума и при проходе от минимума к единице.
Но зато эта прогамма будет понятна тем кому не надо разбираться в алгоритме Эвклида.
Yandex
Объявления
02.12.2013, 14:32     Нод
Ответ Создать тему
Опции темы

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