目录
题目
给定一个正整数 n,如果能够分解为 m (m > 1) 个连续正整数之和,请输出所有分解中,m最小的分解。
如果给定整数无法分解为连续正整数,则输出字符串"N"。
输入描述
输入数据为一整数,范围为 (1,2^30]
输出描述
比如输入为:
21
输出:
21=10+11
示例1:
输入21
输出
21=10+11
21可以分解的连续正整数组合的形式有多种
说明
21=1+2+3+4+5+621=6+7+8
21=10+11
其中 21=10+11,是最短的分解序列。
思路
1:一个简单的数学问题,等差数列的累加求和是有公式的。num数组是一个等差数组,差值为1。sum = m * (num[0]+num[m-1]) / 2
2:题目的要求是对应的 m 最小,那么我们可以直接从2开始直接暴力遍历,直到找到满足条件的组合。