p1937.pas
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 60 行
PAS
60 行
PROGRAM p1937;
VAR
n :Integer;
ans :array[1..100,0..100]of Integer;
temp :array[1..100]of Integer;
PROCEDURE Search(long,point:Integer);
var
i :Integer;
begin
if long<ans[point][0] then
begin
for i:=1 to long do ans[point][i]:=temp[i];
ans[point][0]:=long;
end;
if long=ans[point][0] then
begin
for i:=long downto 1 do
begin
temp[long+1]:=point+temp[i];
if (temp[long+1]>100)or(long=100) then continue
else Search(long+1,temp[long+1]);
end;
end;
end;
PROCEDURE MakeAns;
var
i,j :Integer;
begin
for i:=1 to 100 do
begin
ans[i][0]:=i;
for j:=1 to i do ans[i][j]:=j;
end;
temp[1]:=1;
Search(1,1);
end;
PROCEDURE Print;
var
i :Integer;
begin
write(ans[n][1]);
for i:=2 to ans[n][0] do write(' ',ans[n][i]);
writeln;
end;
BEGIN
MakeAns;
readln(n);
while (n>0) do
begin
print;
readln(n);
end;
END.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?