Формула для кодирования звука:
V=k*i*v*t, где V - размер полученного звукового файла(в битах), i - глубина звука(разрешение)(в битах), v - частота дискретизации(в герцах), t - время записи(в секундах), k - кол-во каналов(моно -1 , стерео -2).
В данной задаче:
V=48 Мбайт=48*1024*1024*8 бит
v=64 кГц=64*1000 Гц
i=16 бит
k=2 (стерео)
t - ?
Находим t:
Так как нужно приблизительное значение, то для упрощения вычислений представим:
В итоге:
Переводим в минуты:
мин
Ответ: 3
В общем программы в текстовике, я их проверял они работают
// PascalABC.NET 3.3
begin
var a:=ReadSeqIntegerWhile(x->x<>0).ToArray;
Print(a.Count,a.Where(x->(x mod 2<>0)and(x mod 3=0)).Count);
end.
Пример:
20 87 15 46 61 0
5 2
Program n_1;
uses math;
var i, n, m, a, kol, j:int64;
begin
readln(n);
kol:=0;
a:=n;
while a<>0 do begin
a:=a div 10;
kol:=kol+1;
end;
m:=n mod 100;
for i:=1 to kol-1 do begin
if((n div 10) mod 100 > m) then m:=(n div 10) mod 100;
n:=m div 10;
end;
writeln(m);
end.
Решение чисто математическое. Думаю через строковый тип данных работать будет намного проще.
1) В 16 битной кодировке сообщение = 20*16=320 бит.
2) В 8 битной= 20*8=160.
<span>3) Если перекодирывать из 16 битной в 8 битную т 320-160=160 бит, или =20 байт
Ответ: 160 бит</span>