首页 > 代码库 > hdu 5050 Divided Land
hdu 5050 Divided Land
题目:本质是求两个数的最大公约数,java大数真好用 ^_^。
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { BigInteger TWO = BigInteger.valueOf(2); Scanner t = new Scanner(System.in); int cas = t.nextInt(); for(int ca=1;ca<=cas;ca++) { String a=t.next(); String b=t.next(); BigInteger A = cal(a); BigInteger B = cal(b); BigInteger C = A.gcd(B); BigInteger []D = new BigInteger[1010]; int i=0; while(!C.equals(BigInteger.ZERO)) { D[i++] = C.mod(TWO); C = C.divide(TWO); } System.out.print("Case #"+ca+": " ); for(i--;i>=0;i--) System.out.print(D[i]); System.out.println(); } } public static BigInteger cal(String s) { char b = ‘1‘; BigInteger t = BigInteger.valueOf(0); BigInteger k = BigInteger.valueOf(1); BigInteger TWO = BigInteger.valueOf(2); for(int i=s.length()-1;i>=0;i--) { if(s.charAt(i)==b) { t=t.add(k); } k=k.multiply(TWO); } //System.out.println(t); return t; } }
hdu 5050 Divided Land
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。