题目描述:
给你一个正整数 n ,找出满足下述条件的 中枢整数 x :
1 和 x 之间的所有元素之和等于 x 和 n 之间所有元素之和。
返回中枢整数 x 。如果不存在中枢整数,则返回 -1 。题目保证对于给定的输入,至多存在一个中枢整数。
示例:
解题思路:
前n位到前m位的和:(n+m)(n-m+1)/2
中枢整数x满足:(1+x)(x-1+1)/2=(x+n)(n-x+1)/2
化简得:x²=(n²+n)/2
代码附上:
class Solution {
public int pivotInteger(int n) {
int sum=(n*n+n)/2;
int x=(int)Math.sqrt(sum);
if(x*x==sum) return x;
return -1;
}
}