10(10) =2^3+2^1=1010(2) 15(10) = 2^3+2^2+2^1+2^0=8+4+2+1=1111(2) 1010(2) в обратном коде - изменяете 0 на 1, 1 на 0 -> 11110101(2) - обратный код дополнительный код - это к обратному добавить 1 -> 11110110(2) - дополнительный код отрицательные числа хранятся в дополнительном коде 15(10) = 1111(2), обратный код к 1111(2) будет 11110000(2), дополнительный - 11110001(2) -15(10) = 11110001(2), дополнительный код к -15(10) будет само число 15 обратный к -15(2) -> 00001110(2) , добавляем 1 -> 00001110(2) +1 = 00001111(2) = 15(10)
//Pascal ABC.NET Версия 2.2 Сборка 790 var s,d:string; n,i,j:integer; begin; readln(n); readln(d); i:=1; for j:=1 to n-1 do i*=10; j:=i; while i*10<>j do begin; inc(j); s:=inttostr(j); if pos(d,s)=0 then write(s:5); end; end.