大洪山图片:可以把一个自然数分解成若干个自然数之和

来源:百度文库 编辑:高校问答 时间:2024/05/01 20:44:57
可以把一个自然数分解成若干个自然数之和
如N=3 有:3=1+1+1
=1+2
共2种分解方案(注:1+2与2+1算同一种分法)
输入 N,输出分解种数及具体方案.
如输入 N=3;
输出 TOTAL=2
用pascal
输出分解种数及具体方案.

搜索+优化
枚举所有可能 n<=100
program chaifen;
var
n,m:longint;
procedure find(v:integer);
var
k:integer;
begin
for k:=v to n div 2 do begin
n:=n-k;
find(k);
n:=n+k; end;
inc(m);
end;
begin
readln(n);
find(1);
writeln('TOTAL=',m-1);
end.