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;
  }

results matching ""

    No results matching ""