- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
const
base = 10000;
dig = 4;
maxlen = 100;
type
ArrCh = ARRAY [0..maxlen] of integer;
function StrToArr(a: string): ArrCh;
var NUM: ArrCh;
len,j,c: integer;
temp: string;
begin
len:=length(a);
While len>dig do
begin
temp:=copy(a,len-dig+1,dig);
inc(j);
val(temp,NUM[j],c);
delete(a,len-dig+1,dig);
len:=length(a);
end;
val(a,NUM[j+1],c);
NUM[0]:=j+1;
StrToArr:=NUM;
end;
function ADD(a,b:ArrCh): ArrCh;
var i,r: integer;
begin
r:=0;
if a[0]<b[0] then a[0]:=b[0];
for i:=1 to a[0] do
begin
if r=0 then a[i]:=a[i]+b[i]
else begin
a[i]:=a[i]+b[i]+1;
r:=0;
end;
if a[i]>=base then
begin
a[i]:=a[i] mod base;
r:=1;
end;
end;
if r<>0 then
begin
a[0]:=a[0]+1;
a[a[0]]:=1;
end;
ADD:=a;
end;
var a,b: string;
i: integer;
n1,n2,sum: ArrCh;
begin
readln(a); readln(b);
n1:=StrToArr(a); n2:=StrToArr(b);
writeln(n1[0]);
sum:=ADD(n1,n2);
for i:=sum[0] downto 1 do
if sum[i]=0 then write('0000')
else if (sum[i]<1000) and (i<>sum[0]) then
begin
if sum[i] div 10=0 then write('000',sum[i])
else
if sum[i] div 100=0 then write('00',sum[i])
else
if sum[i] div 1000=0 then write('0',sum[i]);
end
else write(sum[i]);
end.
Комментарии (0) RSS
Добавить комментарий