给出一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,我我们需要找出长度最小的那个。 例如 N = 18 L = 2: 5 + 6 + 7 = 18 3 + 4 + 5 + 6 = 18 都是满足要求的,但是我们输出更短的 5 6 7
Sn = (a1 + an) * n / 2 = N
[a1+a1+(n-1)*d] * n = 2N
a1 = (2N-n^2+n)/2
由连续的非负整数可知这一串数字是差为1的等差数列
1 |
|
给出一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,我我们需要找出长度最小的那个。 例如 N = 18 L = 2: 5 + 6 + 7 = 18 3 + 4 + 5 + 6 = 18 都是满足要求的,但是我们输出更短的 5 6 7
Sn = (a1 + an) * n / 2 = N
[a1+a1+(n-1)*d] * n = 2N
a1 = (2N-n^2+n)/2
由连续的非负整数可知这一串数字是差为1的等差数列
1 |
|