求大整数n被划分成K个的小整数的算法

来源:百度知道 编辑:UC知道 时间:2024/05/21 14:13:59
求大整数n被划分成K个的小整数的算法
不好意思,我第一次提问,没说明白.
我真正想求的是:
一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思想,最好能用delphi写出来.

不知道我现在这样说,您能明白吗?

我先把代码和结果帖出来
你不知道原理的话我可以再解释

函数:
//把一个正整数Number分成Parts个正整数,要求不重复
function DivideNumber(Number, Parts: integer): string;
var
  MinNumber, BaseNumber, i: integer;
begin
  result := '';
  if Number < 1 then exit;
  if Parts < 1 then exit;
 
  MinNumber := (Parts - 1) * Parts div 2;
  if Number < MinNumber then exit;
 
  BaseNumber := (Number - MinNumber) div Parts;
 
  for i := 1 to Parts - 1 do
    result := result + IntToStr(BaseNumber + i - 1) + ',';
 
  result := result + IntToStr(Number - MinNumber - BaseNumber * Parts + BaseNumber + Parts - 1) + ',';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  Memo1.Clear;