题意:输入n个大数,判断是否为等比数列。
思路:大数+等比数列性质,a[i]*a[i]=a[i-1]*a[i+1]。
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String []arg){
Scanner cin=new Scanner(System.in);
BigInteger[] a=new BigInteger[110];
int T;
T=cin.nextInt();
while(T>0){
T--;
int n=cin.nextInt();
int cnt=0;
for(int i=1;i<=n;i++){
a[i]=cin.nextBigInteger();
if(a[i].equals(BigInteger.ZERO)) cnt++;
}
if(cnt==n){
System.out.println("Yes");
continue;
}
if(cnt!=0){
System.out.println("No");
continue;
}
//BigInteger x=new BigInteger("0");
boolean is=true;
for(int i=2;i<n;i++){
BigInteger x=a[i-1].multiply(a[i+1]);
if(!x.equals(a[i].multiply(a[i]))) {
is=false;
break;
}
}
if(is) System.out.println("Yes");
else System.out.println("No");
}
}
}