Предмет: Информатика, автор: MAXIMkriper

Задача 5. «Эволюция» Во время исследований, посвященных появлению жизни на планете Олимпия,

учеными было сделано несколько открытий:

1. Все живые организмы планеты происходят от бактерии Bitozoria Programulis.

2. Эволюция происходила шаг за шагом. 3. На каждом этапе эволюции из каждого вида

образовывались два подвида, а предыдущий вид

исчезал.

4. Если считать появление бактерии Bitozoria

Programulis первым

шагом

эволюции,

6

TO существующие сейчас живые организмы находятся на

N-ом шаге

Чтобы не придумывать названия во время исследований, ученые пронумеровали все виды организмов, которые когда-либо существовали на планете. Для этого они нарисовали дерево эволюции с корнем Bitozoria Programulis, которая получила номер 1.

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


Паскаль абц

Ответы

Автор ответа: ilyav1nokurov
1

Ответ:

Конечно, я могу помочь в решении задачи. Вот решение на языке Паскаль:

program Evolution;

var

 n, m, l: integer;

begin

 writeln('Введите номера двух видов:');

 readln(n, m);

 

 while n <> m do

 begin

   if n > m then

     n := n div 2

   else

     m := m div 2;

 end;

 

 l := 0;

 while n > 0 do

 begin

   n := n div 2;

   l := l + 1;

 end;

 

 writeln('Номер ближайшего общего предка:', l);

end.

Программа сначала запрашивает номера двух видов и затем находит номер их ближайшего общего предка в дереве эволюции. Для этого она использует два цикла. Первый цикл сравнивает номера видов и делит их на 2 до тех пор, пока они не станут равными друг другу. Когда они становятся равными, это означает, что они достигли своего ближайшего общего предка. Затем второй цикл находит номер этого предка в дереве эволюции, подсчитывая количество его предков.

Надеюсь, это поможет! Если у вас есть дополнительные вопросы или нужна дополнительная помощь, не стесняйтесь спрашивать.

Объяснение:

Похожие вопросы