关于 高斯算法计算某数可以被分割成连续自然数之和的组数 个人的一点拙见

来源:互联网 发布:java 字符串随机排列 编辑:程序博客网 时间:2024/06/13 22:56

题目描述:基于高斯算法计算一个正整数可以被分割成多少组连续(包括自身)的自然数之和?

如:

3=3;

3=1+2;

5=5;

5=2+3;

6=6;

6=1+2+3;

.......


解题思路:

由Sn=n*a1+(n-1)/2*d

因为 d=1;

可得:a1=(Sn-(n-1)/2)/n   //a1为连续数列中的最小数 n为当前数列元素的个数

考虑n>=1

当a1=1时,n可取最大值

得出:n<=(2*Sn+1)/3

综上,1<=n<=(2*Sn+1)/3

由此可得出每组满足题意的连续数列!


新人发帖!欢迎大神指正优化思路!


0 0
原创粉丝点击