Для начала представим наш IP-адрес в двоичной системе. Переведем каждый байт отдельно. Имеем следующий IP-адрес:
00010100.00010001.00000000.000<span>10000
</span>Число после косой черты - количество единиц в маске подсети. Таким образом, маска подсети будет иметь вид:
11111111.11111111.11111111.11111100
Теперь найдем сетевой адрес, выполнив поразрядно логическое умножение IP-адреса на маску подсети.
00010100.00010001.00000000.00010000 - IP-адрес
11111111.11111111.11111111.11111100 - маска подсети
00010100.00010001.00000000.000100хх - сетевой адрес
То есть минимальный адрес (заменяем "х" нулями) - 00010100.00010001.00000000.00010000 (20.17.0.16), а максимальный (заменяем "х" единицами) - 00010100.00010001.00000000.00010011 (20.17.0.19).
Ответом будут адреса из данного диапазона, то есть <span>20.16.0.17/30, 20.17.0.17/30, 20.17.0.18/30, 20.17.0.19/30.
</span>
Кодяра ниже
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include <iostream>
using namespace std;
int main(){
int a[10];
for(size_t i = 0; i<10; ++i){
a[i] = 2(i+1);
cout << a[i] << " ";
}
cout << endl;
for(size_t i = 0; i<10; ++i)
cout << a[i] << endl;
return 0;
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Кодяра выше
А1 - 2
а2 -3
а3 - 3,4,5
а4 - 1
а5 - 3
а6 - 4
а7 - 5
а8 - 4
а9 - 1,2,3,4,5
а11 - 10
а12 - разрядом???
<h2>Цикл for</h2>
- uses Math;
- var
- i: integer;
- sum: real;
- begin
- for i := 1 to 100 do
- Sum := Sum + Sqr(i);
- Writeln(Sum);
- end.
<h2>Цикл while (предусловие)</h2>
- uses Math;
- var
- i: integer;
- sum: real;
- begin
- while i <= 100 do
- begin
- Sum := Sum + Sqr(i);
- i := i + 1;
- end;
- Writeln(Sum);
- end.
<h2>Цикл repeat..until (постусловие)</h2>
- uses Math;
- var
- i: integer;
- sum: real;
- begin
- repeat
- i := i + 1;
- Sum := Sum + Sqr(i);
- until i >= 100;
- Writeln(Sum);
- end.
Var n:integer;
Begin
Read(n);
while (n>0) do begin
if(n mod 2 = 1) then begin
writeln(true);
exit;
end;
n := n div 10;
end;
writeln(false);
End.