// 2177. 找到和为给定整数的三个连续整数
class Solution {
public long[] sumOfThree(long num) {
long[] ans;
if(num % 3 == 0){
// 只考虑能被3整除的
ans = new long[3];
/*
根据等差数列的前n项和
中间的3项: n - 1, n, n + 1
3项之和:S(n-1, n+1) = (n-1) + n (n+1) = 3n
*/
// 我们可以知道这里中间的那一项为num/3
long mid = (long)(num / 3);
// 这里直接赋值即可
ans[0] = mid - 1;
ans[1] = mid;
ans[2] = mid + 1;
}else{
// 直接返回空数组
ans = new long[0];
}
return ans;
}
}