题意:有一块椭圆形的地。在边界上选n(0<=n<=2的31次方)个点并两两连接得到n*(n - 1) / 2条线段。它们最多能把地分成多少个部分?
思路:欧拉公式,自己没推出来看了别人的
import java.math.*;
import java.util.Scanner;
public class Main{
public static void main(String[]args) {
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
BigInteger n;
while(t-- > 0) {
n = scanner.nextBigInteger();
BigInteger ans = BigInteger.ZERO;
BigInteger a = n.pow(4);
BigInteger b = n.pow(3).multiply(BigInteger.valueOf(6));
BigInteger c = n.pow(2).multiply(BigInteger.valueOf(23));
BigInteger d = n.multiply(BigInteger.valueOf(18));
ans = ans.add(a).subtract(b).add(c).subtract(d);
ans = ans.divide(BigInteger.valueOf(24)).add(BigInteger.ONE);
System.out.println(ans);
}
}
}