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

Спро ханойские башни расписать порядок ходов для перекладывания 5 дисков со второго стержня на третий. если что, 31 ход всего.

👇
Ответ:
dogdogdogdogdogdog
dogdogdogdogdogdog
21.06.2021
Крутить это все в уме - чистое наказание. Проще было написать программу.

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

type
  Pinnacle=record
    St:Stack<integer>;
    No:integer;
  constructor (n:integer);
  begin
    St:=new Stack<integer>;
    No:=n
  end;
end;
 
var
  MoveNo:integer;

procedure MoveDisk(s1,s2:Pinnacle);
begin
  if s1.St.Count>0 then begin
    MoveNo+=1;
    s2.St.Push(s1.St.Pop);
    Writeln(MoveNo:3,': №',s2.St.Peek,' ',s1.No,' -> ',s2.No)
    end
end;
   
procedure MovePinnacle(n:integer; s1,s2,s3:Pinnacle);
begin
  if n=0 then exit;
  MovePinnacle(n-1,s1,s3,s2);
  MoveDisk(s1,s2);
  MovePinnacle(n-1,s3,s2,s1);
end;

begin
  var n:=5;
  var p1:=new Pinnacle(1);
  var p2:=new Pinnacle(2);
  var p3:=new Pinnacle(3);
  Range(n,1,-1).ForEach(i->p2.St.Push(i));
  MoveNo:=0;
  MovePinnacle(n,p2,p3,p1);
end.

Результат работы
  1: №1 2 -> 3
  2: №2 2 -> 1
  3: №1 3 -> 1
  4: №3 2 -> 3
  5: №1 1 -> 2
  6: №2 1 -> 3
  7: №1 2 -> 3
  8: №4 2 -> 1
  9: №1 3 -> 1
 10: №2 3 -> 2
 11: №1 1 -> 2
 12: №3 3 -> 1
 13: №1 2 -> 3
 14: №2 2 -> 1
 15: №1 3 -> 1
 16: №5 2 -> 3
 17: №1 1 -> 2
 18: №2 1 -> 3
 19: №1 2 -> 3
 20: №3 1 -> 2
 21: №1 3 -> 1
 22: №2 3 -> 2
 23: №1 1 -> 2
 24: №4 1 -> 3
 25: №1 2 -> 3
 26: №2 2 -> 1
 27: №1 3 -> 1
 28: №3 2 -> 3
 29: №1 1 -> 2
 30: №2 1 -> 3
 31: №1 2 -> 3

Иллюстрация первых пяти шагов приведена во вложении.

Спро ханойские башни расписать порядок ходов для перекладывания 5 дисков со второго стержня на трети
4,5(100 оценок)
Открыть все ответы
Ответ:

var


 i: Integer;


 Af: array [1..10] of Integer;


begin


 Af [1] := 1;   // первый член ряда равен 1

 Af [2] := 1;   // второй член ряда равен 1

 for i := 3 to 10 do begin   // цикл, начинающийся с 3-го члена до заданного (десятого)

   Af [i] := Af [i - 2] + Af [i - 1];   // каждый член ряда равен сумме двух предыдущих

 end;


 for i := 1 to 10 do begin   // вывод на экран первых 10 членов ряда

   Write (Af [i], ', ');


 end;


end.

// 2-й вариант (без использования массива)

var

 a, b, c, i: Integer;

begin

 a := 1;

 Write (a, ', ');

 b := 1;

 Write (b, ', ');

 for i := 3 to 10 do begin

   c := a + b;

   Write (c, ', ');

   a := b;

   b := c;

 end;

end.

4,7(5 оценок)
Ответ:
BrusLee22
BrusLee22
21.06.2021

var

 A: array [1..11] of Real;

 i, j, aj, ai: Integer;

 amax, atmp, P: Real;

begin

 Randomize;

 WriteLn ('Исходный массив:');

 for i := Low (A) to High (A) - 1 do begin

   A [i] := Random * 100;

   Write (A [i]:5:2, ' ');

 end;

 for i := Low (A) to High (A) - 1 do begin

   A [i] := Round (A [i]);

 end;

 for i := Low (A) to High (A) - 1 do begin

   amax := A [i];

   aj := i;

   for j := i to High (A) do begin

     if A [j] > amax then begin

       amax := A [j];

       aj := j;

     end;

   end;

   if i <> aj then begin

     atmp := A [i];

     A [i] := A [aj];

     A [aj] := atmp;

   end;

 end;

 WriteLn;

 WriteLn ('Полученный массив:');

 for i := Low (A) to High (A) - 1 do begin

   Write (A [i]:5:2, ' ');

 end;

 WriteLn;

 Write ('Введите число Р: ');

 Read (P);

 ai := High (A);

 for i := Low (A) to High (A) - 1 do begin

   if P > A [i] then begin

     ai := i;

     Break;

   end;

 end;

 for i := High (A) downto ai + 1 do

   A [i] := A [i - 1];

 A [ai] := P;

 WriteLn ('Массив после вставки:');

 for i := Low (A) to High (A) do begin

   Write (A [i]:5:2, ' ');

 end;

end.

   

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