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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 58, средняя оценка - 4.67
eFilipchik
Сообщений: n/a
#1

Нод - C++

18.04.2010, 23:44. Просмотров 7408. Ответов 3
Метки нет (Все метки)

Даны два числа 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++):

НОД для двух чисел - C++ Builder
Доброго времени суток. Помогите написать прогу находящуюю наибольший общий делитель для двух натуральных чисел. Т.е. нада что бы...

НОД двух натуральных чисел - C++ Builder
Написать программу, определяющую наибольший общий делитель двух заданных натуральных чисел. Прирешении задачи инициализируйте значения...

Данные натуральные числа n и m; найти НОД (n, m) - C++ Builder
Данные натуральные числа n и m; найти НОД (n, m). Составить рекурсивную функцию вычисления НОД, основанную на соотношении НОД (n, m) = НОД...

Найти ошибку (Програма нахождения НОД (через строки)) - C++ Builder
Помогите найти ошибку... програма нахождения НОД, делал через строки(для больших чисел) ...

Подскажите где ошибка в нахождени НОД. Вводятся два числа a b и они должны лежать в промежутке d1 d2. с-НОД - C++
#include "stdafx.h" #include #include #include #include #include #include // для system using namespace std; int...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 секунд
Рекурсивный алгоритм Евклида для нахождения нод
2
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;
}
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 минуты
Я основывала ее на том что НОД все равно не может быть больше минимального числа. Но зато ее сложность возрастает при поиске минимума и при проходе от минимума к единице.
Но зато эта прогамма будет понятна тем кому не надо разбираться в алгоритме Эвклида.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 14:32
Привет! Вот еще темы с ответами:

НОД - C++
Нужно доработать код, чтобы находить НОД трех чисел, пожалуйста) #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; using...

НОД - C++
Извиняюсь за вопрос, просмотрел все но не нашел того, что нужно Задание: Найти НОД 2 чисел # include &lt;iostream&gt; # include...

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

НОД - C++
Написать программу которая из двух чисел x и y ищет наибольший общий делитель


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.12.2013, 14:32
Ответ Создать тему
Опции темы

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