285. Inorder Successor in BST
by Botao Xiao
829. Consecutive Numbers Sum
Question
Given a positive integer N, how many ways can we write it as a sum of consecutive positive integers?
Example 1:
Input: 5
Output: 2
Explanation: 5 = 5 = 2 + 3
Example 2:
Input: 9
Output: 3
Explanation: 9 = 9 = 4 + 5 = 2 + 3 + 4
Example 3:
Input: 15
Output: 4
Explanation: 15 = 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
Note: 1 <= N <= 10 ^ 9.
Solution:
- Method 1: Math
- We assume the first term is x and totally m terms.
- 2xm + m(m - 1) = 2N => we try all possible m and find if there is a valid x.
class Solution { public int consecutiveNumbersSum(int N) { int res = 0; for(int m = 1;;m++){ int mx = 2 * N - m *(m - 1); if(mx <= 0) break; else if(mx % (2 * m) == 0) res++; } return res; } }
Subscribe via RSS