题意
给出一对长和宽 输出在这个长和宽之下 尽可能大的分出全部相等的小正方形的边长 输入输出都用二进制表示
输入最大是2^1000
分析
两个长度下都可以分出来就是gcd
code
import java.math.BigInteger;
import java.util.Scanner;public class Main {static Scanner sc = new Scanner (System.in);static BigInteger a,b;public static void main (String[] args) {int t;t = sc.nextInt();for(int i=1;i<=t;i++){String aa = sc.next();String bb = sc.next();a = new BigInteger(aa,2);b = new BigInteger(bb,2);//System.out.println(a+" "+b);String ans = (a.gcd(b)).toString(2);System.out.println("Case #"+i+": "+ans);}}
}
new BigInteger(aa,2); 可以以第二参数为base进制读入数字字符串aa
a.gcd(b).toString(2)可以将ab的gcd求出来 并转为2进制字符串
java大数可以也可以用nextBigInteger(radix) radix 是进制基数