这个以前我一直不太清楚,关于返回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));
}
}