Задать вопрос
7 июня, 10:35

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

+2
Ответы (1)
  1. 7 июня, 12:53
    0
    Рекурсивная:

    function NOD (x, y:integer) : integer;

    begin

    if x0 then NOD:=NOD (y mod x, x) else NOD:=y;

    end;

    var a, b:integer;

    begin

    write ('a=') ; readln (a) ;

    write ('b=') ; readln (b) ;

    writeln ('НОД=', NOD (a, b)) ;

    end.

    Не рекурсивная:

    function NOD (x, y:integer) : integer;

    begin

    while (x0) and (y0) do

    if x>y then x:=x mod y else y:=y mod x;

    NOD:=x+y;

    end;

    var a, b:integer;

    begin

    write ('a=') ; readln (a) ;

    write ('b=') ; readln (b) ;

    writeln ('НОД=', NOD (a, b)) ;

    end.

    Пример:

    a=125

    b=50

    НОД=25
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Напишите рекурсивную и не рекурсивную функции вычисляющие НОД двух натуральных чисел с помощью модифицированного алгоритма евклида ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы