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

来源:互联网 发布:网络电视直播软件不卡 编辑:程序博客网 时间:2024/05/22 12:46

题意:

给出两个个二进制的数,求最大公约数(这个数最大能到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
原创粉丝点击