829. Consecutive Numbers Sum
Description
Intuition
就是找到能首项为a
,项数为m
的等差数列,则有[a + (a + m - 1)] * m / 2 = N
那么则am = N - (m - 1) * m / 2
Pitfall
Solution
public int consecutiveNumbersSum(int N) {
int res = 0;
for (int n = 1; ; n++) {
int na = N - (n - 1) * n / 2;
if (na <= 0) {
break;
} else if (na % n == 0) {
res++;
}
}
return res;
}