写出来样例都对了,还是wrong。若有用,必采纳

img

img


import java.io.*;
import java.util.HashSet;

public class Main {
    static long []a=new long [100000];    
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        StreamTokenizer in =new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        PrintWriter pw=new PrintWriter(new OutputStreamWriter(System.out));
        in.nextToken();
        int t =(int)in.nval;
        for(int i=0;i<t;i++) {
            in.nextToken();
            long b=(long)in.nval;
            int ans=0;
            for(int j=2;j>0;j++) {
                long y=b;
                int index=0;
                while(y!=0) {
                    a[index++]=(y%j);
                    y/=j;
                }
                if(check(a,index)) {
                    pw.println(j);
                    pw.flush();                    
                    break;
                }
            }

        }
    }
    
    static boolean check(long []a,int index) {
        HashSet<Long>set=new HashSet<>();
        int l=0;
        for(int i=0;i<index;i++) {
            set.add(a[i]);
        }        
        int[] tem=new int [set.size()];
        for(Long i:set) {
            for(int j=0;j<index;j++) {
                if(i==a[j]) {
                    tem[l]++;
                }
            }
            if(l>=1) {
                if(tem[l-1]!=tem[l]) {
                    return false;
                }
            }
            l++;
        }
        for(int i=1;i<set.size();i++) {
            if(tem[i]!=tem[i-1]) {
                return false;
            }
        }
        return true;
        
    }

}

加一个区间验证试一试

img