P1426 小鱼会有危险吗
总:三个字——暴力。
var
s,x,ans,n:real;
begin
readln(s,x);
ans:=0; n:=7;
while ans<s-x do
begin
ans:=ans+n;
n:=n*0.98;
end;
ans:=ans+n;
if ans>s+x then write('n')
else write('y');
end.
P1464 Function
总:可以神搜,可以递推。这是第二种。
var
a,b,c,i,j,k:longint;
f:array[0..20,0..20,0..20] of longint;
begin
readln(a,b,c);
while (a<>-1) or (b<>-1) or (c<>-1) do
begin
fillchar(f,sizeof(f),0);
write('w(',a,', ',b,', ',c,') = ');
if ((a>20) or (b>20) or (c>20)) and not ((a<=0) or (b<=0) or (c<=0)) then
begin
a:=20; b:=20; c:=20;
end;
if (a<=0) or (b<=0) or (c<=0) then writeln(1) else
begin
for i:=0 to a do
for j:=0 to b do
for k:=0 to c do
if (i=0) or (j=0) or (k=0) then f[i,j,k]:=1 else
if (i<j) and (j<k) then f[i,j,k]:=f[i,j,k-1]+f[i,j-1,k-1]-f[i,j-1,k]
else f[i,j,k]:=f[i-1,j,k]+f[i-1,j-1,k]+f[i-1,j,k-1]-f[i-1,j-1,k-1];
writeln(f[a,b,c]);
end;
readln(a,b,c);
end;
end.
P1014 Cantor表
总:O(1)。
var
i,n,s:longint;
begin
readln(n);
i:=trunc((sqrt(1+8*n)-1)/2);
s:=i*(i+1) div 2;
if n=s then s:=s-i
else inc(i);
if i mod 2=1 then write(i+1-n+s,'/',n-s)
else write(n-s,'/',i+1-n+s);
end.