М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Dasha16032005
Dasha16032005
18.11.2020 20:50 •  Информатика

Составьте программу нахождения наибольшего общего делителя трех чисел, используя следующую формулу: нод(а, b, с) = нод(нод(a, в), с). испоьзуя алгоритм евклида

👇
Ответ:
dashko4etckowa
dashko4etckowa
18.11.2020
Var
    a, b, c: longint;

function nod(a, b: longint): longint;
begin
    a := abs(a);
    b := abs(b);
    if a * b = 0 then nod := 1
    else begin
        while a <> b do
            if a > b then
                a := a - b
            else
                b := b - a;
        nod := a;
    end;
end;

begin
    read(a, b, c);
    writeln(nod(nod(a, b), c));
end.
4,5(49 оценок)
Открыть все ответы
Ответ:
AlenaBukalova
AlenaBukalova
18.11.2020

Объяснение:

В общем алгоритм такой.

Пусть мы имеем массив a[1..n, 1..n] из n*n элементов,

i - номер строки, j - номер столбца.

Спускаемся вниз по строкам до строки, номер которой отличается от того,

n - четное или нечетное.

В общем случае это номер i_ser, равный n делить на 2, и округленный до целого вниз.

Например, если n = 4, i_ser = 2, если n = 7, то i_ser = 3.

Для i от 1 до i_ser делать

 начало

   Для j от 1 до i делать

     // здесь мы получаем нужные нам координаты i, j

 конец

Если i_ser нечетно, то отдельно проходимся по строке с номером i_ser+1

Если i_ser нечетно то

 начало

   i_ser = i_ser + 1

Для j от 1 до i_ser делать

     // здесь мы получаем нужные нам координаты i_ser, j

 конец

 

i_ser = i_ser + 1      

Для i от i_ser до n делать

 начало

   Для j от 1 до n - i + 1 делать

     // здесь мы получаем нужные нам координаты i, j

 конец

4,8(87 оценок)
Ответ:
sara133
sara133
18.11.2020

Объяснение:

var

 x, a, b:integer;

 ras_x_a, ras_x_b, ras_a_b:integer;

 ras_min:integer;

begin

 x:=5;

 

 a:=1;

 b:=8;

 

 ras_x_a:=abs(x-a);

 ras_x_b:=abs(x-b);

 ras_a_b:=abs(a-b);

 

 if ((ras_x_a <=ras_x_b) and (ras_x_a <=ras_a_b)) then

   ras_min:=ras_x_a

 else

   if ((ras_x_b <=ras_x_a) and (ras_x_b <=ras_a_b)) then

   ras_min:=ras_x_b

   else

     if ((ras_a_b <=ras_x_a) and (ras_a_b <=ras_x_b)) then

     ras_min:=ras_a_b;

     

 writeln(ras_min);

 

end.

4,7(22 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ