Переводим 3 байт обоих адресов в двоичную систему счисления 152(10) = 10011000(2) 157(10) = 10011101(2)
Запишем их друг под другом
10011000 10011101
Нам нужен наибольший байт маски. В маске под единицами записывается адрес сети, под нулями - номер хоста. Адрес сети у этих адресов одинаковый, то есть для поиска наибольшего байта маски мы можем байты разделить так 10011 000 10011 101
Первые пять разрядов - это окончание адреса сети, последние три - начало хоста. Хосту в маске подсети соответствуют нули, адресу сети - единицы, получается, что наибольший байт маски равен
152(10) = 10011000(2)
157(10) = 10011101(2)
Запишем их друг под другом
10011000
10011101
Нам нужен наибольший байт маски. В маске под единицами записывается адрес сети, под нулями - номер хоста. Адрес сети у этих адресов одинаковый, то есть для поиска наибольшего байта маски мы можем байты разделить так
10011 000
10011 101
Первые пять разрядов - это окончание адреса сети, последние три - начало хоста. Хосту в маске подсети соответствуют нули, адресу сети - единицы, получается, что наибольший байт маски равен
10011 000
10011 101
11111 000 - маска
11111000(2) = 248(10)
var
i: Integer;
l: Single;
counter: Integer;
begin
counter := 0;
for i := 0 to 14 do begin
Read(l);
if l >= 165 then
counter := counter + 1 ;
end;
Writeln(counter);
end.
Второй вариант
const
cN: Integer = 15;
cMinSuitableLength: Single = 165;
var
arr: array [0..14] of Single;
i, counter: Integer;
begin
for i := 0 to Length(arr) - 1 do
Read(arr[i]);
counter := 0;
for i := 0 to Length(arr) - 1 do
if arr[i] >= cMinSuitableLength then
counter := counter + 1;
Writeln(counter);
end.
Объяснение: