早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一道pascal题读入一个数N,输出组成N的全部正整数的解.比如:N=4 输出:4=4 4=3+1 4=2+2 4=2+1+1 4=1+1+1+1

题目详情
一道pascal题
读入一个数N,输出组成N的全部正整数的解.比如:N=4 输出:4=4 4=3+1 4=2+2 4=2+1+1 4=1+1+1+1
▼优质解答
答案和解析
var
n,r:longint;
l:array[0..100] of longint;
procedure print;
var
i:longint;
begin
write(n,'=');
if r>1 then
begin
write(l[1]);
for i:=2 to r do write('+',l[i]);
writeln;
end;
end;
procedure find(x,min:longint);
var
i:longint;
begin
if x=0 then print
else begin
for i:=min to x do
begin
inc(r);
l[r]:=i;
find(x-i,i);
dec(r);
end;
end;
end;
begin
read(n);
find(n,1);
end.