1. Можно осуществить обмен через операции сложение и вычитания, произведения и деления.
Например:
x:=x+y
y:=x-y
x:=x-y
2. Из недостатков вижу только то, что происходя вычисления а не только присваивания.
3. Если используется алгоритм со сложением и вычитанием, то его можно применять для вещественных чисел.
Вроде вывод и ввод получается спирт
-2, 8, 18, 28, 38, 48, 58, 68, 78, 88
2^33 bit = 2^30 Bait = 2^20 KBait = 2^10 MBait = 1024 MBait
Const n=15;
var a,b,c:array[0..n] of integer;
s_a,s_b:string;
i:integer;
Begin
readln(s_a);
readln(s_b);
while length(s_a)<n do s_a:='0'+s_a;
while length(s_b)<n do s_b:='0'+s_b;
for i := n downto 1 do begin
a[i]:=strtoint(s_a[i]);
b[i]:=strtoint(s_b[i]);
c[i]:=c[i]+a[i] + b[i];
c[i-1]:=c[i] div 10;
c[i]:=c[i] mod 10;
end;
writeln;
for i:= 0 to n do write(a[i]);
writeln;
for i:= 0 to n do write(b[i]);
writeln;
for i:= 0 to n do write(c[i]);
End.