这是我第一题的做法,时间复杂度O(1) public static int solution(int n) { int x = (int)Math.sqrt(2 * n) - 1; int rest = n - (x + 1) * x / 2; int result = x * (x + 1) * (2 * x + 1) / 6; result += rest * (x + 1); return result; }