program DecToBinCount;
uses
SysUtils, StrUtils;
function DecToBin (m: Integer): string;
var
r: Integer;
s: string;
begin
while (m > 0) do Begin
r := m mod 2;
m := m div 2;
s := IntToStr (r) + s;
end;
Result := s;
end;
var
m, n, x, i, c: Integer;
s: string;
begin
Write ('Введите M, N, X: ');
ReadLn (m, n, x);
WriteLn;
c := 0;
for i := m to n do begin
s := DecToBin (i);
if RightStr (s, x) = StringOfChar ('0', x) then begin
WriteLn (s, ' '); // для проверки. после тестирования закомментарить
Inc (c);
end;
end;
WriteLn (c);
ReadLn;
end.
Итак. Общий размер файла 1,5 = 1536 Мбайт. Размер буфера T 128 Мбайт. Значит, для передачи файла через этот буфер его потребуется заполнить 1536 / 128 = 12 раз. Получилось целое число, поэтому мы посчитаем время, которое требуется на шаги 1-6, и умножим его на 12.
Так как ничего не сказано о времени на закрытие соединения, будем считать, что на это время не тратится.
1) Устанавливаем соединение с А - 1 секунда
2) Принимаем от устройства А 128 Мбайт со скоростью 8 Мбайт в секунду - 128 / 8 = 16 секунд
3) Закрываем соединение с А
4) Открываем соединение с В - 4 секунды
5) Передаём устройству В 128 Мбайт со скорость 2 Мбайта в секунду - 128 / 2 = 64 секунды
6) Закрываем соединение с В
Итого: 1+16+4+64 = 85 секунд
85 * 12 = 1020 секунд = 17 минут.
ответ: 17 минут.
Пусть длина слова L. Тогда по правилу умножения слов длины L можно составить N^L = 4^L. Приравниваем к 256 и получаем, что L = 4.
ответ. 4 буквы.