829. Consecutive Numbers Sum
Description
Given an integer n
, return the number of ways you can write n
as the sum of consecutive positive integers.
Example 1:
Input: n = 5 Output: 2 Explanation: 5 = 2 + 3
Example 2:
Input: n = 9 Output: 3 Explanation: 9 = 4 + 5 = 2 + 3 + 4
Example 3:
Input: n = 15 Output: 4 Explanation: 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
Constraints:
1 <= n <= 109
Solutions
Solution: Math
- Time complexity: O(n)
- Space complexity: O(1)
JavaScript
js
/**
* @param {number} n
* @return {number}
*/
const consecutiveNumbersSum = function (n) {
let result = 0;
let triangleNum = 0; // count * (count - 1) / 2
for (let count = 1; triangleNum + count <= n; count++) {
if ((n - triangleNum) % count === 0) {
result += 1;
}
triangleNum += count;
}
return result;
};