求大整数n被划分成K个的小整数的算法不好意思,我第一次提问,没说明白.我真正想求的是:一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 05:25:08
求大整数n被划分成K个的小整数的算法不好意思,我第一次提问,没说明白.我真正想求的是:一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思

求大整数n被划分成K个的小整数的算法不好意思,我第一次提问,没说明白.我真正想求的是:一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思
求大整数n被划分成K个的小整数的算法
不好意思,我第一次提问,没说明白.
我真正想求的是:
一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思想,最好能用delphi写出来.
不知道我现在这样说,您能明白吗?

求大整数n被划分成K个的小整数的算法不好意思,我第一次提问,没说明白.我真正想求的是:一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思
我先把代码和结果帖出来
你不知道原理的话我可以再解释
函数:
//把一个正整数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;
  for i := 15 to 57 do
    Memo1.Lines.Add(IntToStr(i) + ': ' + DivideNumber(i, 6));
end;
运行结果如下,你可以一个个验证看看
15: 0,1,2,3,4,5
16: 0,1,2,3,4,6
17: 0,1,2,3,4,7
18: 0,1,2,3,4,8
19: 0,1,2,3,4,9
20: 0,1,2,3,4,10
21: 1,2,3,4,5,6
22: 1,2,3,4,5,7
23: 1,2,3,4,5,8
24: 1,2,3,4,5,9
25: 1,2,3,4,5,10
26: 1,2,3,4,5,11
27: 2,3,4,5,6,7
28: 2,3,4,5,6,8
29: 2,3,4,5,6,9
30: 2,3,4,5,6,10
31: 2,3,4,5,6,11
32: 2,3,4,5,6,12
33: 3,4,5,6,7,8
34: 3,4,5,6,7,9
35: 3,4,5,6,7,10
36: 3,4,5,6,7,11
37: 3,4,5,6,7,12
38: 3,4,5,6,7,13
39: 4,5,6,7,8,9
40: 4,5,6,7,8,10
41: 4,5,6,7,8,11
42: 4,5,6,7,8,12
43: 4,5,6,7,8,13
44: 4,5,6,7,8,14
45: 5,6,7,8,9,10
46: 5,6,7,8,9,11
47: 5,6,7,8,9,12
48: 5,6,7,8,9,13
49: 5,6,7,8,9,14
50: 5,6,7,8,9,15
51: 6,7,8,9,10,11
52: 6,7,8,9,10,12
53: 6,7,8,9,10,13
54: 6,7,8,9,10,14
55: 6,7,8,9,10,15
56: 6,7,8,9,10,16
57: 7,8,9,10,11,12
不过我不知道这个问题有什么意义
最简单的办法是先找到0,1,2,3,4这五个数字
然后把剩下的算做第六个就是了
下限是15的话,说明第六个数字最少也是5
不会有问题

求大整数n被划分成K个的小整数的算法不好意思,我第一次提问,没说明白.我真正想求的是:一个整数n,(n是15到75的数),把n划分成6个互不相同的小整数之和,要求求出这样的6个小整数,写出算法思 求算法:把一个数M分成N个整数...求算法:把一个整数M分成N个数相加 求算发:: 把一个数M分成N个整数的和!~! 如:::把5分成3个数的和有:0+0+5,0+1+4,0+2+3,1+2+2. 输出所有的情况谢谢各位,在线等 设n和k为>1的整数,n<2^k,求证:存在2k个整数,将他们任意分成两组,则总有一组有若干个数的和被N整除 给定N个整数,试编写一个算法将其分成两个部分,其中一部分为负数,另一部分为正数.要求算法的时间复杂性 如图1.正方形ABCD的边长为12,划分成12*12个小正方形,将边长为n(n为整数,且2≤n ≤11)的黑白两色正方形纸片按图中的方式黑白相间的摆放,第一张n*n个小正方形格,第二张纸片盖住第一张纸片的部 分别用流程图和伪代码的方法描述求找n个整数中最大值的算法? 设计一个从n (n>=1)个整数中挑选出最大者的算法 将一个大正方形划分成21个相同的小长方形,已知每一个小长方形的周长恰好是100厘米,求大正方形的面积. 将一个大正方形划分成21个相同的小长方形,已知每个小长方形的周长恰好是100cm,求大正方形的周长? 如图正方形ABCD 边长为12,划分成12X12个小正方形格,讲边长为N(N为整数)且N大于或等于2 小于或等于11 1.由于正方形纸片边长n的取值不同,完成摆放时所使用的正方形纸片的张数也不同,请填写 VB编程,输入n个整数,求它们的最大公约数.注意:是n个整数 非常难得奥数题5.将一个边长为整数的大正方形分成97个边长都是整数的小正方形,若其中96个小正方形的边长是1,那么大正方形的边长是多少? 求算法问题:一个数组a中有n个整数,如何设计算法,使其中相同的数只有一个.并给出程序. 求整数合成 并 可逆唯一分解的算法多个整数通过某算法后生成了一个整数 A,是否有方法将该整数A分解为之前的几个整数? 第三题 第k小整数(knumber) 现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤4000,正整数均小于30000.输入文件第一行为n和k;第二行开始为n个正整 试编写算法,对连续输入的n个整数,找出其中最大值和最小值( 设计算法,求出任意输入的n个整数中的最大值! 【x】取整取到不比x大的最大整数,已知集合A={n|n=【k²/2500】,k∈[1,2004]},求集合A内的元素个数.标准答案是1503个,