求助
pascal吧
全部回复
仅看楼主
level 1
需要写一个这样的程序,输入一个数,把这个数分割成0以上数的和。如图:
前一半的分割不能有重复的,后一半可以重复。这个有什么简单方法啊,自己写了一百多行。。。
2018年01月22日 07点01分 1
level 1

2018年01月29日 07点01分 2
level 7
全排列
2018年01月30日 04点01分 3
level 9
这个等我仔细想想,算比较难的,写出来贴出来,写不出来就算了[滑稽]
2018年02月09日 10点02分 4
level 9
楼主这个不大对啊,有俩“5”,所以楼主要写的到底是有序分拆还是无序分拆[汗]
2018年02月09日 10点02分 5
有序 图里的结果看作两个程序好了 前一半无重复的分拆 后一半有重复的 两个分拆5都满足而已…
2018年02月09日 10点02分
哦哦
2018年02月12日 08点02分
level 9
uses sysutils;
procedure boo(n,o:longint;s:ansistring);
var
i:longint;
begin
if n=0 then
writeln(s)
else
for i:= o to n do
if (n-i=0) or ((n-i)>i) then
boo(n-i,i+1,s+format('%8d',[i]));
end;
procedure foo(n,o:longint;s:ansistring);
var
i:longint;
begin
if n=0 then
writeln(s)
else
for i:= o to n do
foo(n-i,i,s+format('%8d',[i]));
end;
var
n:longint;
begin
readln(n);
boo(n,1,'');
foo(n,1,'');
end.
2018年02月12日 12点02分 6
1