讨论 / 为什么只有80
S.C.Q. 2012-10-19 16:57:00
点我顶贴 收藏 删除
procedure dfs(y,z,dqian,zong:longint);

var

dqian1,zong1:longint;

i,j:longint;

begin

if dqian>(n-zong) div z then exit;

if z=2 then

begin

i:=dqian;

j:=n-zong-i;

while i<=j do

begin

inc(sum);

inc(i);

dec(j);

end;

end

else begin

if dqian=0 then dqian1:=1 else dqian1:=dqian;

zong1:=zong+dqian1;

while dqian1<=(n-zong) div z do

begin

dec(y,dqian1);

dec(z);

dfs(y,z,dqian1,zong1);

dec(zong1,dqian1);

inc(y,dqian1);

inc(z);

inc(dqian1);

inc(zong1,dqian1);

end;

end;

end;

procedure work;

begin

dfs(n,m,0,0);

writeln(sum);

end;

测试结果1: 测试结果错误.错误结果为:4

正确结果应为:3

谁有第1个数据值也行

查看更多回复
提交回复