Друга ищи, а найдешь - береги
Старый друг лучше новых двух
Если на один символ — 2 байта, то как я понимаю, на восемнадцать символов— 18*2=36 байтов.
Записываешь число, после справа налево записываешь нумерацию цифр в числе, начиная с нуля, потом по формуле " K*p^n+.....и так со всеми цифрами" k- само число, р - та система счисления, в которую переводишь, n - номер цифры Пример: 101 (двоичая). 1*2^2+0*2^1+1*1^0
Два бита и также четыри байта вотвотвот
<u>PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var n:=ReadInteger('Число сторон многоугольника:');
var xp:=new real[n];
var yp:=new real[n];
Writeln('Введите парами координаты вершин');
for var i:=0 to n-1 do Read(xp[i],yp[i]);
var (x,y):=ReadReal2('Введите координаты точки:');
var (i,j,c):=(0,n-1,False);
while i<n do begin
if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp [i]))
and (x<(xp[j]-xp[i])*(y-yp[i])/(yp[j]-yp[i])+xp[i]) then c:=not c;
j:=i;
i+=1;
end;
if c then Writeln('Внутри')
else Writeln('Не внутри')
end.
<u>Примеры</u>
Число сторон многоугольника: 5
Введите парами координаты вершин
-5 2 2 6 7 3.1 4.3 -5 -6 -6
Введите координаты точки: 2.1 1.7
Внутри
Число сторон многоугольника: 5
Введите парами координаты вершин
-5 2 2 6 7 3.1 4.3 -5 -6 -6
Введите координаты точки: -2 5
Не внутри