1)
var
str : string;
begin
readln (str);
writeln (length (str) - pos (':', str));
end.
2)
var
str, s : string;
count, i : integer;
begin
readln (str);
s := copy (s, pos ('(', str) + 1, pos (')', str) - pos ('(', str) - 1);
count := 0;
for i := 1 to length (s) do
if s[i] = ' ' then inc (count);
writeln (count + 1);
end.
3)
var
str : string;
count : integer;
begin
readln (str);
count := 0;
while pos (',', str) > 0 do
begin
inc (count);
delete (str, pos (',', str), 1);
end;
writeln (str);
writeln (count);
end.
Сделано без проверки на соответствие условию.
Логистинг задачи:
var i,n,max,d:LongInt;
x1,x2:Real;
begin
max:=1;
Read(n);
for i:=1 to n div 2 do
begin
d:=sqr(2*i-1)+8*n;
if d<0 then Continue;
x1:=((1-2*i)-sqrt(d))/2;
x2:=((1-2*i)+sqrt(d))/2;
if (frac(x1)=0) and (x1>max) then
begin
max:=Round(x1);
Break;
end;
if (frac(x2)=0) and (x2>max) then
begin
max:=Round(x2);
Break;
end;
end;
Writeln(max);
end.
Листинг программы:
var n, s: longint;
begin
readln(s);
s := 2 * s; {лучше s := s shl 1;}
n := trunc(sqrt(s)); {можно, как планировалось, n := trunc(sqrt(s + 0.25) - 0.5);}
while n > 1 do
if (s mod n = 0) and odd(s div n - n)
then break
else dec(n);
writeln(n)
end.
Число 86 в двоичном коде выглядит так: 1010110
В обратном коде выглядит оно точно так же, потому что число положительное.
У положительных чисел обратный код совпадает с прямым кодом.