hdu5050(Java大数 + 二进制 + 最大公约数)

题意:

给出两个个二进制的数,求最大公约数(这个数最大能到2^1000);


思路:

因为数字太大,所以直接算肯定不行;

所以这题用了Java的大数类;

容易就过了,以后再补c的代码:


</pre><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'Source Code Pro';font-size:14pt;"><span style="color:#629755;">/**
</span><span style="color:#629755;"> * Created by yehao on 15-3-18.
</span><span style="color:#629755;"> */
</span><span style="color:#cc7832;">import </span>java.math.BigInteger<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">import </span>java.util.*<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">public class Main</span>{
    <span style="color:#cc7832;">public static void </span><span style="color:#ffc66d;">main</span>(String[] arge) {
        Scanner in = <span style="color:#cc7832;">new </span>Scanner(System.<span style="color:#9876aa;"><em>in</em></span>)<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">        int </span>t<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">        </span>t = in.nextInt()<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">        for</span>(<span style="color:#cc7832;">int </span>i = <span style="color:#6897bb;">0</span><span style="color:#cc7832;">; </span>i < t<span style="color:#cc7832;">; </span>i++) {
            BigInteger a = in.nextBigInteger(<span style="color:#6897bb;">2</span>)<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">            </span>BigInteger b = in.nextBigInteger(<span style="color:#6897bb;">2</span>)<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">            </span>System.<span style="color:#9876aa;"><em>out</em></span>.println(<span style="color:#6a8759;">"Case #" </span>+ (i + <span style="color:#6897bb;">1</span>) +<span style="color:#6a8759;">": " </span>+ a.gcd(b).toString(<span style="color:#6897bb;">2</span>))<span style="color:#cc7832;">;
</span><span style="color:#cc7832;">        </span>}
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值