Отримання знань

дистанційна підтримка освіти школярів


Тут ви можете виконати завдання чи задати питання по змiсту цього уроку.

1 (1) 2014-08-21 15:30:49
Задача PAVEMENT.
----------------------
{Pavement}
const
Nmax=500;
type
Digit=0..9;
Chislo=0..1000;
DlChislo=array[1..Nmax] of Digit;
var
f1,f2,f3,g1,g2,g3:DlChislo;
n,j:chislo;
Procedure Nul(var x:DlChislo);
begin
FillChar(x,SizeOf(x),0);
end;
Procedure Cop(x:DlChislo;var y:DlChislo);
var
i:Chislo;
begin
for i:=1 to Nmax do y[i]:=x[i];
end;
Procedure Sum(x,y:DlChislo;var z:DlChislo);
var
i,b:Chislo;
begin
b:=0;
for i:=1 to Nmax do begin
z[i]:=(x[i]+y[i]+b) mod 10;
b:=(x[i]+y[i]+b) div 10;
end;
end;
Procedure Sum3(x1,x2,x3:DlChislo;var z:DlChislo);
var
i,b:Chislo;
begin
b:=0;
for i:=1 to Nmax do begin
z[i]:=(x1[i]+x2[i]+x3[i]+b) mod 10;
b:=(x1[i]+x2[i]+x3[i]+b) div 10;
end;
end;
procedure GetDlChislo(x:DlChislo);
var
i,f:Chislo;
begin
f:=0;
for i:=Nmax downto 1 do begin
if x[i]<>0 then f:=1;
if f=1 then Write(x[i]);
if (i=1)and(f=0) then Write('0');
end;
WriteLn;
end;
begin
Read(n);
Nul(f1);Nul(f2);Nul(f3);Nul(g1);Nul(g2);Nul(g3);
f1[1]:=1;g1[1]:=1;
f2[1]:=4;g2[1]:=2;
for j:=3 to n do begin
Sum(g2,f2,g3);
Sum3(g3,g2,f1,f3);
Cop(g2,g1); Cop(g3,g2);
Cop(f2,f1); Cop(f3,f2);
end;
if n=1 then GetDlChislo(f1)
else if n=2 then GetDlChislo(f2)
else GetDlChislo(f3);
end.

Повернутися до уроку

Повернутися до перелiку уроків курсу

В системі: гості - (); користувачі - (0)