Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для filosof_77
20 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 36

Нахождение наибольшего общего делителя для 6-и чисел

10.10.2011, 18:49. Показов 1737. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет!
у меня есть задача на нахождение наибольшего общего делителя для 6-и чисел ...
нашел было алгоритм ..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
int nod(int,int);
main()
{
int x,y,t;
cout<<"vvedite chisla\n";
cin>>x>>y;
t=nod(x,y);
cout<<"nod="<<t<<"\n";
return 0;
}
int nod(int a,int b)
{
while(a!=b)
{
if(a>b)
a=a-b;
else b=b-a;
}
return a;
}

но думаю что он немножко медленный ... возможно кто может подсказать оптимальнее решение?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2011, 18:49
Ответы с готовыми решениями:

Нахождение наибольшего общего делителя для элементов массива целых чисел
Написать программу нахождения наибольшего общего делителя для элементов массива целых чисел буду признателен, если поможете. Написать...

Нахождение наибольшего общего делителя n чисел
Найти НОД (наибольший общий делитель) n чисел. Входные данные Первая строка содержит количество чисел n (1 &lt; n &lt; 101). Во...

Нахождение наибольшего общего делителя n целых чисел
Составить программу нахождения наибольшего общего делителя n целых чисел, используя функцию нахождения НОД двух чисел.

9
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.10.2011, 18:58
C++
1
2
3
4
5
6
7
8
9
unsigned int Nod(unsigned int n, unsigned int m)
{
    while (n && m) 
        if (n >= m) 
           n %= m; 
        else 
           m %= n; 
    return m + n;
}
1
 Аватар для filosof_77
20 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 36
11.10.2011, 09:37  [ТС]
C++
1
2
3
4
5
6
7
unsigned int Nod(unsigned int n, unsigned int m)
{
    if (m == 0)
        return n;
    else
        return Nod(m,n%m);
}
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2011, 09:40
filosof_77, оправданно ли использовать рекурсию для данной задачи, вряд ли
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
11.10.2011, 11:20
На wikipedia есть оптимизированная реализация НОД
Она еще шустрее чем пункт 2
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
11.10.2011, 12:11
Называется Алгоритм Евклида.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.10.2011, 12:15
C++
1
2
3
4
5
int gcd( int a, int b )
{
   while( b^=a^=b^=a%=b );
   return a;
}
1
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2011, 12:52
Цитата Сообщение от alexcoder Посмотреть сообщение
Называется Алгоритм Евклида.
А в постаx 2 и 3 разве не алгоритм Евклида Просто здесь обычный, а там бинарный. Проблема с бинарным алгоритмом Евклида такая, что из него нельзя построить расширенный алгоритм Евклида, но если это не нужно, то бинарный, наверное, лучше.
0
 Аватар для filosof_77
20 / 1 / 0
Регистрация: 16.12.2009
Сообщений: 36
11.10.2011, 14:49  [ТС]
это лабораторное задание .. думаю быстродействие алгоритма не является очень важным.!
но спасибо за столько примеров!
0
Заблокирован
11.10.2011, 14:52
compile-time нод
C++
1
2
3
4
5
6
7
8
9
template <int x, int y> struct gcd
{
    static const int value = gcd<y, x % y>::value;
};
 
template <int x> struct gcd<x, 0>
{
    static const int value = x;
};
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2011, 14:52
Помогаю со студенческими работами здесь

Нахождение наибольшего общего делителя двух натуральных чисел
1)Используя функцию NOD нахождения наибольшего общего делителя двух натуральных чисел, сократить данную обычную дробь M / N. / /...

Нахождение наибольшего общего делителя и наименьшего общего кратного двух натуральных
Составить программу для нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел (НОК(А,В)= А*В/ НОД...

Нахождение наибольшего общего делителя
Разработать и испытать рекурсивную функцию для вычисления наибольшего общего делителя двух введенных натуральных чисел.

Нахождение наибольшего общего делителя
Borland C++ Найти наибольший общий делитель двух натуральных чисел a и b.

Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел
Составить программу для нахождения наибольшего и наименьшего общего делителя и наименьшего общего кратного двух натуральных чисел по...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru