Полагаю, вопрос оборван и полная формулировка звучит следующим образом: "для узла с ip-адресом 203.155.196.98 адрес сети равен 203.155.192.0. найдите наибольшее возможное количество единиц в двоичной записи маски подсети."нас интересует 3-й октет (байт) ip адреса, который равен 196. переведем в двоичную систему. аналогично поступим с 3-м октетом адреса сети. ip адрес и маска подсети адрес сети, их поразрядное логическое умножение друг на друга. для наглядности запишем это в столбик. 11000100 - ip - маска 11000000 - адрес сети однозначно, чтобы получить единицы в крайних левых разрядах адреса сети, они должны быть и в маске. 11000100 11000000 в требуется определить максимально возможное количество единиц в маске. т.к. в маске подсети сначала идут все единицы, а потом все нули без чередования, маска будет следующей: 11000100 11111000 11000000 будь единиц в маске хотя бы на одну больше, адрес сети бы изменился на 11000100. теперь представим нашу маску в двоичном коде: 11111111.11111111.11111000.00000000 число единиц 8+8+5=21. ответ: 21 единица.
Спасибо
Ответ дал: Гость
var n, n1, n2, n3, k: integer;
begin readln(n); n1 : = 1; n2 : = 1; n3 : = 2; k : = 0; if (n=1) or (n=2) then k : = 1; while n3 < = n do begin if n3=n then k : = 1; n1 : = n2; n2 : = n3; n3 : = n1 + n2; end; if k = 1 then writeln(n, ' является числом фибоначчи') else writeln(n, ' не является числом фибоначчи'); end.
Популярные вопросы