java compare函数

这个以前我一直不太清楚,关于返回1 -1 0 的问题,特别是自定义函数不知道怎么写

然后看到了一句金句:当前对象与后一个对象进行比较,如果比较结果为1进行交换,其他不进行交换。this就是当前对象,另一个就是后一个对象。

原文链接:http://www.cnblogs.com/gengaixue/p/6928654.html

-1不交换,为1是交换 !!!

就因为这个错了好多 额。,,

大数比较的时候,比较结果,=1是大于

例如:

public class Test48 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.next();
        String s2 = sc.next();
        System.out.println(sqrt(s1).multiply(sqrt(s2)));

    }
    static BigInteger sqrt(String s){
        int length = s.length();
        int len = 0;
        if(length%2==0){
            len = length/2;
        }else {
            len = len/2+1;
        }
        char[] sar=new char[len];
        Arrays.fill(sar,'0');
        BigInteger target =  new BigInteger(s);   //转化字符串s为大数
        for(int pos =0;pos<len;pos++){
            for(char c = '1';c<'9';c++){
                sar[pos] = c;//在pos这个位置上试着填入1-9
                BigInteger pow = new BigInteger(String.valueOf(sar)).pow(2);
                if(pow.compareTo(target)==1){//试探数的平方更大
                    sar[pos] -=1;
                    break;
                }
            }
        }
        return new BigInteger(String.valueOf(sar));
    }
}

猜你喜欢

转载自blog.csdn.net/h_666666/article/details/87914009