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个数据值也行