如
15 = 15
15 = 7 + 8
15 = 4 + 5 + 6
15 = 1 + 2 + 3 + 4 + 5
首先考虑一般的形式,设n为被划分的正整数,x为划分后最小的整数,如果n有一种划分,那么
结果就是x,如果有两种划分,就是x和x x + 1, 如果有m种划分,就是 x 、x x + 1 、 x x + 1 x + 2 、... 、x x + 1 x + 2 ... x + m - 1
将每一个结果相加得到一个公式(i * x + i * (i - 1) / 2) = n,i为当前划分后相加的正整数个数。
满足条件的划分就是使x为正整数的所有情况。
如上例,当i = 1时,即划分成一个正整数时,x = 15, 当i = 2时, x = 7。
当x = 3时,x = 4, 当x = 4时,4/9,不是正整数,因此,15不可能划分成4个正整数相加。
当x = 5时,x = 1。
Java代码
public static int split(int n) {
int m = 0, x, t1, t2;
for (int i = 1; (t1 = i * (i - 1) / 2) < n; i++) {
t2 = (n - t1);
x = t2 / i;
if (x <= 0)
break;
if ((n - t1) % i == 0) {
System.out.print(x + " ");
for (int j = 1; j < i; j++) {
System.out.print(x + j + " ");
}
System.out.println();
m++;
}
}
return m;
}
分享到:
相关推荐
把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设第i个序列的各数之和是S(i)。要求:让所有的S(i)的最大值尽量小。例如:序列1,2,3,2,5,4划分成3个序列的最优方案为123|25|4,...
给定n 个整数组成的序列,现在要求将序列分割为m 段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小? 编程任务: 给定n 个整数组成的序列,编程计算该序列的最优m 段分割,...
把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设第i个序列的各数之和是S(i)。要求:让所有的S(i)的最大值尽量小。例如:序列1,2,3,2,5,4划分成3个序列的最优方案为123|25|4,...
1. 问题描述:n个元素的集合{1...给定正整数n,计算出n 个元素的集合{1,2,..., n }可以划分为多少个不同的非空子集。 输入:多组测试数据。每组有且仅有一行为一个正整数n( 0 )。 输出:输出n个元素集合的非空子集数。
N个元素的集合{1,2,3...,n}可以划分为若干个非空子集。例如,当n=2时,集合{1,2,3}可以划分为2个不同的非空子集如下:{...编程任务:给定正整数N,计算出N个元素的集合{1,2,3,.....n}可以划分为多少个不同的非空子集。
把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设第i个序列的各数之和是S(i)。要求:让所有的S(i)的最大值尽量小。例如:序列1,2,3,2,5,4划分成3个序列的最优方案为123|25|4,...
把一个包含n个正整数的序列划分成m个连续的子序列,每个整数刚好属于一个序列。设第i个序列的各数之和是S(i)。要求:让所有的S(i)的最大值尽量小。例如:序列1,2,3,2,5,4划分成3个序列的最优方案为123|25|4,...
USACO 的题目集合,按第一个字母分类,包括原站点的算法说明文档
结合两种型号后,我们使用CAR FLUT将优化的模型开发成基于GRA的连续时间状态,使我们能够预测未来的充电器开发。 3.接下来,我们对模型进行敏感性分析。 建立回归方程以分析充电站和EV运输份额之间的关系。 分析了...
输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割? 示例 1: 输入: [1,2,3,3,4,5] 输出: True 解释: 你可以...
采样保持电路的输出信号虽然已成为阶梯形,但阶梯形的幅值仍然是连续变化的,为此要把采样保持后的阶梯信号按指定要求划分成某个最小量化单位的整数倍,这一过程称为量化 相差一个△ 3.比较型逐次逼近式A/D转换器的...
在这个模型中,长度为T个周期的计划期被划分成连续的若干段,每段初需制定该段的仓储能力决策,同一段中各期的期末库存水平均受限于该段仓储能力.假设每段仓储能力费用为仓储能力的非减函数,各期的产品订货费用为...
1.5.7. 输入一个表示整数的字符串,把该字符串转换成整数并输出.............. 118 1.5.8. 给出一个数列,找出其中最长的单调递减(或递增)子序列..............121 1.5.9. 四对括号可以有多少种匹配排列方式........
具体的做法是:用2连续去乘十进制数的小数部分,直至乘积的小数部分等于0为止,然后按顺序排列每次乘积的整数部分(先取得的整数为高位),便得到与该十进制数相对应的二进制数各位的数值。 5.如何把PowerPoint2010...
语音信号可表述成激励源和线性...但是,插入或删除基音周期使语音信号的相位不连续,造成语音跳变,为此,采用交叠分帧的方法将语音信号划分成短时段序列。然后,求增或删后短时段序列相邻短时段之间的相关函数,进而求出相关
连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值 分箱 案例 1.先读取股票的数据,筛选出p_change数据 data = pd.read_csv
第一章 字符串 o 1.0 本章导读 o 1.1 旋转字符串 o 1.2 字符串包含 o 1.3 字符串转换成整数 o 1.4 回文判断 o 1.5 最长回文子串 o 1.6 字符串的全排列 o 1.10 本章习题 第二章 数组 o 2.0 本章导读 o 2.1 寻找最小的...
q763_划分字母区间 数字操作 q7_整数反转 q8_字符串转换整数 q9_回文数 q43_字符串相乘 q172_阶乘后的零 q258_各位相加 数组操作 q54_螺旋矩阵 q73_矩阵置零 q78_子集 q384_打乱数组 q581_最短无序连续子数组 q945_...
q763_划分字母区间 数字操作 q7_整数反转 q8_字符串转换整数 q9_回文数 q43_字符串相乘 q172_阶乘后的零 q258_各位相加 数组操作 q54_螺旋矩阵 q73_矩阵置零 q78_子集 q384_打乱数组 q581_最短无序连续子数组 q945_...
(1)、根据点云数据的特点,建立八叉树模型,对原始数据进行坐标变换,映射到正整数空间,在此基础上计算数据的Morton码。对Morton码排序、求差,统计码长,提出了一种改进Morton码的方法。该方法提高了Morton编码的...