讨论 / 谁能找出错?!!!!!!!!
mg7in 2012-08-01 03:55:00
点我顶贴 收藏 删除
var

f:array[0..21,0..21,0..21] of longint;

function w(a,b,c:longint):longint;

begin

if (a<=0)or(b<=0)or(c<=0) then

begin

w:=1;

exit;

end;

if (a>20)or(b>20)or(c>20) then

begin

w:=w(20,20,20);

exit;

end;

if f[a,b,c]<>0 then

begin

w:=f[a,b,c];

exit;

end;

if (a<b)and(b<c) then

begin

w:=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);

f[a,b,c]:=w;

end

else

begin

w:=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);

f[a,b,c]:=w;

end;

end;

procedure main;

var a,b,c:longint;

begin

readln(a,b,c);

while (a<>-1)and(b<>-1)and(c<>-1) do

begin

writeln('w(',a,', ',b,', ',c,') = ',w(a,b,c));

readln(a,b,c);

end;

end;

begin

assign(input,'254.in');reset(input);

assign(output,'254.out');rewrite(output);

main;

close(input);close(output);

end.

改了10+次

硬是没过 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#1 mg7in@2012-08-01 03:55:00
回复 删除
好吧- -

while not((a=-1)and(b=-1)and(c=-1)) do

错了TAT

查看更多回复
提交回复