顺丰笔试,进制为啥不对。。。

没有写-1的情况,但其他的应该可以
import java.util.*;

public class Main{
    public static void main(String[] args)throws Exception{
        Scanner sc=new Scanner(System.in);
        String[] s=sc.nextLine().split(":");
        char[] a=s[0].toCharArray();
        char[] b=s[1].toCharArray();
        int l=a.length;
        int r=b.length;
        int[] z=new int[l];
        int[] x=new int[r];
        for(int i=0;i<l;i++){
            if(a[i]<='9'){
                z[i]=(int)a[i];
            }else{
                z[i]=(int)(a[i]-'A')+10;
            }
        }
        for(int i=0;i<r;i++){
            if(b[i]<='9'){
                x[i]=(int)b[i];
            }else{
                x[i]=(int)(b[i]-'A')+10;
            }
        }        
        int m=0;
        int[] a1=z;
        Arrays.sort(a1);

        int c=a1[l-1]+1;
		
        int n=0;
        int[] b1=x;
        Arrays.sort(b1);
        int d=b1[r-1]+1;    
        int q=Math.max(c,d);        
		if((z[l-1]<24&&pas(z))&&(pas(x))){
            System.out.print(0);
        }        
        while(m<24){
            m=0;
            int j=0;
            for(int i=l-1;i>=0;i--){
                m+=z[i]*Math.pow(c,j);
                j++;
            }
            c++;
        }

        while(n<60){
            n=0;
            int p=0;
            for(int i=r-1;i>=0;i--){
                n+=x[i]*Math.pow(d,p);
                p++;
                }
            d++;
        }
        int sum=Math.min(c-2,d-2);

        for(int i=q;i<sum;i++){
            System.out.print(i+" ");
        }
        System.out.print(sum);
    }
	public static boolean pas(int[] a){
        int m=a.length;
        for(int i=0;i<m-1;i++){
            if(a[i]!=0){
                return false;
            }
        }
        return true;
    }
}


#笔试题目##顺丰科技#
全部评论
我也觉得好奇怪啊
点赞 回复
分享
发布于 2019-09-10 16:23
int[] a1=z; Arrays.sort(a1);因为你排序了
点赞 回复
分享
发布于 2019-09-10 16:50
小红书
校招火热招聘中
官网直投
你为啥要排序啊(已胶卷)
点赞 回复
分享
发布于 2019-09-10 17:11

相关推荐

点赞 4 评论
分享
牛客网
牛客企业服务