#include <iostream>
int main() {
long n;
std::cin >> n;
long power = 10;
for (long i = 1; i <= n; i++) {
if (power <= i) {
power *= 10;
}
if (i * i % power == i) {
std::cout << i << " ";
}
}
return 0;
}
Очень просто! То, что требуется найти в задаче, то есть количество би первоначального сообщения обозначим за x 1. Тогда несложно составить уравнение. Использована формула перевода из 16-битной в 8-битную.
16*x=8*x+16*8 (плюс, потому что объем первоначального уменьшился, а полученного увеличился)
Из полученного уравнения находим х
х = 16
Вот и все, можно записать ответ:
Ответ: 16 бит
<em>// PascalABC.NET 3.2, сборка 1344 от 22.11.2016</em>
<em>// Внимание! В более ранних версиях программа работать не будет!</em>
begin
var d:=MatrRandom(4,4,-20,20);
Writeln('Исходный массив'); d.Println(4);
var s:=d[0,0];
for var i:=1 to 3 do begin d[i,i]:=d[i,0]; s+=d[i,i] end;
Writeln('Полученный массив'); d.Println(4);
Writeln('Сумма на главной диагонали ',s)
end.
<u>Пример</u>
Исходный массив
14 8 -12 12
15 -9 -16 -6
18 -7 7 5
-7 -12 -10 -14
Полученный массив
14 8 -12 12
15 15 -16 -6
18 -7 18 5
-7 -12 -10 -7
Сумма на главной диагонали 40
Количество каналов =2 (стерео)
t=1,5 мин =1,5*60 с = 90 с
Н =36 КГц =36*1000 Гц=9*4*8*125 1/с=9*125*2^5 1/c = 1125*2^5 1/c
F=2 *8*90*1125*2^5 бит=1125*45*2^4*2^5 бит=50625*2^10 бит =
= 6328,125 Кбайт =6,2 Мбайта
Program n1;
const n=20;
var a: array[1..n] of integer;
i,m: integer;
begin
writeln('исходный массив:');
for i:=1 to n do
begin
a[i]:=random(15);
write(a[i],' ');
end;
writeln;
write('введите позицию: ');
readln(m);
if (m>=1) and (m<=n) then
begin
a[m]:=10;
writeln('полученный массив:');
for i:=1 to n do write(a[i],' ');
end;
end.