olgakuz00261
?>

Головоломка “Ханойские башни” состоит из трех стержней, пронумерованных числами 1, 2, 3. На стержень 1 надета пирамидка из n дисков различного диаметра в порядке возрастания диаметра. Диски можно перекладывать с одного стержня на другой по одному, при этом диск нельзя класть на диск меньшего диаметра. Необходимо переложить всю пирамидку со стержня 1 на стержень 3 за минимальное число перекладываний. Напишите программу, которая решает головоломку; для данного числа дисков n печатает последовательность перекладываний в формате a b c, где a — номер перекладываемого диска, b — номер стержня с которого снимается данный диск, c — номер стержня на который надевается данный диск. Например, строка 1 2 3 означает перемещение диска номер 1 со стержня 2 на стержень 3. В одной строке печатается одна команда. Диски пронумерованы числами от 1 до n в порядке возрастания диаметров. Программа должна вывести минимальный (по количеству произведенных операций перекладывания пирамидки из данного числа дисков. На питоне

Информатика

Ответы

mrFuz
//Вот программа, которая кодирует слова в системах счисления от 2 до 10
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0

var
 a,i,b,r,n,j,bug:integer;
 s,se,slo,slof:string;

procedure preob(var a,b,n:integer; var se:string);
 begin
  repeat
   b:=a mod n;
   a:=a div n;
   str(b,se);
   s+=se;
  until (a<=n-1);
 end;

begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.

//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-
Korneeva1856
Итак, за 2 минуты можно передать файл размером 5000 кБайт. Так как результат тоже должен быть в кБайтах, то мы можем не переводить в байты. Но так как сначала даны минуты, а потом секунды, то либо мы сначала переводим минуты в секунды, либо секунды в минуты.

Чтобы найти скорость передачи файла, нужно количество кБайт(S) разделить на время, за которое этот файл передался. Так как последующий файл отправляется по тому же соединению, то их скорости равны. Значит нужно некоторое x разделить на 48 секунд (или минут, если ты перевёл(ела) в минуты).

5000/120=х/48
120х=240000
х=2000

Или, если ты перевёл в минуты, то
5000/2=х/0,8
2х=4000
х=2000
ответ: 2000

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Головоломка “Ханойские башни” состоит из трех стержней, пронумерованных числами 1, 2, 3. На стержень 1 надета пирамидка из n дисков различного диаметра в порядке возрастания диаметра. Диски можно перекладывать с одного стержня на другой по одному, при этом диск нельзя класть на диск меньшего диаметра. Необходимо переложить всю пирамидку со стержня 1 на стержень 3 за минимальное число перекладываний. Напишите программу, которая решает головоломку; для данного числа дисков n печатает последовательность перекладываний в формате a b c, где a — номер перекладываемого диска, b — номер стержня с которого снимается данный диск, c — номер стержня на который надевается данный диск. Например, строка 1 2 3 означает перемещение диска номер 1 со стержня 2 на стержень 3. В одной строке печатается одна команда. Диски пронумерованы числами от 1 до n в порядке возрастания диаметров. Программа должна вывести минимальный (по количеству произведенных операций перекладывания пирамидки из данного числа дисков. На питоне
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

itartdesignprof
Anatolevich
smartschoolfili6
pisikak999
Дмитриевич_Скрябин931
aifbon
nikv568734
Irinalobanowa
lenarzhaeva
Konstantinovna Ilyukhin1618
uisfbu7777733
adminaa
Belik-elena20111
delo1005
Игорь Андрей