Y博士发现了一种细菌,并命名为YYP细菌,他发现这种细菌有如下特性。1、该细菌幼年期为3天,第四天便进化为成熟期细菌。2、细菌进入成熟期,每天可产一个幼年期细菌。在不考虑细菌寿命的情况下,第一天将1个细菌放入培养基中,请帮助Y博士计算一下第n天能够获得多少个细菌。这一题可以直接得出递推式 F[N]=F[N-1]+F[N-3],初始状态为 F[1]=1,F[2]=1,F[3]=1,然后高精度加法即可。
program xijun;
type arr=array[0..100]of longint;
var f:array[1..150]of arr;
n,i:longint;
function jia(a,b:arr):arr;
var i,j:longint;
begin
j:=a[0];if j<b[0] then j:=b[0];
for i:=1 to j+2 do jia[i]:=0;
for i:=1 to j do
begin
jia[i]:=jia[i]+a[i]+b[i];
jia[i+1]:=jia[i+1]+(jia[i] div 10);
jia[i]:=jia[i] mod 10;
end;
inc(j);
while (j>0)and(jia[j]=0) do dec(j);
jia[0]:=j;
end;
begin
read(n);
for i:=1 to 3 do
begin
f[i][0]:=1;
f[i][1]:=1;
end;
for i:=4 to n do
f[i]:=jia(f[i-1],f[i-3]);
for i:=f[n][0] downto 1 do
write(f[n][i]);
end.
评论