Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2011, 12:36   #1
sektor2011
Пользователь
 
Регистрация: 18.01.2011
Сообщений: 12
По умолчанию Найти наибольший общий делитель

Найти наибольший общий делитель n заданных произвольных натуральных чисел
... если возможно то на си++ ..
sektor2011 вне форума Ответить с цитированием
Старый 27.01.2011, 12:39   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
// --  --
function gcd(a, b: unsigned): unsigned;
begin
  while ((0 < a) and (0 < b)) do begin
    //
    if (a > b) then
      a := a mod b
    else
      b := b mod a;
  end;
  //
  result := max(a, b);
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 27.01.2011, 12:47   #3
sektor2011
Пользователь
 
Регистрация: 18.01.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Код:
// --  --
function gcd(a, b: unsigned): unsigned;
begin
  while ((0 < a) and (0 < b)) do begin
    //
    if (a > b) then
      a := a mod b
    else
      b := b mod a;
  end;
  //
  result := max(a, b);
end;

не понятно а и б это что?
sektor2011 вне форума Ответить с цитированием
Старый 27.01.2011, 14:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
sektor2011
а ты прокрутись вниз страницы - там подобные темы
Цитата:
unsigned
Чегот я такого в Делфи не припомню... Може в 2010ке есть уже...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.01.2011, 17:35   #5
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

Вопросу "не понятно а и б это что?" следует присудить первое место!!!
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 27.01.2011, 17:36   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Може в 2010ке есть уже...
не, это я придумал ) unsigned = cardinal;

Kстати, не заметил, исходная задача для n чисел, а не для двух. Тогда типа так:

Код:
const unsigned n = 100;
unsigned A[n];

unsigned gcd(unsigned a, unsigned b) 
{
	while ((0 < a) && (0 < b)) 
	{
		if (a > b) a %= b;
		else	   b %= a;
	}
	return a > b ? a : b;
}

unsigned gcdA(int index) 
{
	return gcd(A[index], (n == index + 1) ? A[index - 1] : gcdA(index + 1));
}
вызывать, естественно, через gcdA(0);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си. НОД наибольший общий делитель alex(21) Помощь студентам 3 23.11.2010 20:26
[C++ Файли]Определить наибольший общий делитель трех натуральных чисел. basav1k Фриланс 6 06.06.2010 18:24
[C++ Файли]Определить наибольший общий делитель трех натуральных чисел. basav1k Помощь студентам 1 27.05.2010 18:00
Вычислить наибольший общий делитель двух натуральных чисел А и В SsIDit Помощь студентам 1 09.05.2010 11:54
наибольший общий делитель Ge0rGE Помощь студентам 12 03.05.2009 20:09