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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2010, 18:11   #1
DrDre9991
Пользователь
 
Регистрация: 22.05.2010
Сообщений: 17
По умолчанию Написать функцию нахождения наибольший общий делителя двух натуральных чисел.

Написать функцию нахождения наибольший общий делителя двух натуральных чисел.
DrDre9991 вне форума Ответить с цитированием
Старый 12.10.2010, 18:22   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А чем алгоритм Евклида не устраивает?
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.10.2010, 18:42   #3
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Код:
function NOD(m,n: Integer): Integer;
var
  r: Integer;
begin
  if m<n then
           begin
             r:=m;
             m:=n;
             n:=r;
           end;
  while n>0 do
    begin
      r:=m mod n;
      m:=n;
      n:=r;
    end;
  NOD:=m;
end;
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.10.2010, 18:46   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

ой-ой-ой...
Вот так:
Код:
Function NOD(M,N:Integer):Integer;
Begin
        While M<>N Do
        Begin
                If M>N Then M:=M-N
                Else M:=N-M;
        End;
        Nod:=M;
End;
И всё, больше ничего не надо,это вся функция!
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.10.2010, 18:54   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
function NOD(x,y:longint):longint;
 begin
  if x<>0 then NOD:= NOD(y mod x,x) else NOD:= y;
 end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 12.10.2010, 18:59   #6
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
ой-ой-ой...
Вот так:
Код:
Function NOD(M,N:Integer):Integer;
Begin
        While M<>N Do
        Begin
                If M>N Then M:=M-N
                Else M:=N-M;
        End;
        Nod:=M;
End;
И всё, больше ничего не надо,это вся функция!
ты ее специально написал, чтобы я запустил ее и прога зависла????
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.10.2010, 19:01   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Оооо...Я никогда не был силен в рекурсии...
Цитата:
ты ее специально написал, чтобы я запустил ее и прога зависла????
Почему???У меня ничего не зависает и нормально работает...
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.10.2010, 19:15   #8
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Оооо...Я никогда не был силен в рекурсии...

Почему???У меня ничего не зависает и нормально работает...
тогда делаем так NOD(64,48).
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.10.2010, 20:15   #9
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

И что? нод 64 и 48 16, что вам не нравится?
_-Re@l-_ вне форума Ответить с цитированием
Старый 12.10.2010, 20:20   #10
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
И что? нод 64 и 48 16, что вам не нравится?
хз... скопировал код, запустил, зацикливается.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++ Файли]Определить наибольший общий делитель трех натуральных чисел. basav1k Фриланс 6 06.06.2010 18:24
[C++ Файли]Определить наибольший общий делитель трех натуральных чисел. basav1k Помощь студентам 1 27.05.2010 18:00
Вычислить наибольший общий делитель двух натуральных чисел А и В SsIDit Помощь студентам 1 09.05.2010 11:54
функция gcd, которая возвращает наибольший общий делитель двух целых чисел Jereme Общие вопросы C/C++ 2 21.01.2010 01:49
Определить из наибольший общий делитель, используя функцию нахождения общего делителя. Igomax Помощь студентам 6 23.05.2009 19:41