2013-team5/andrew/13/F

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

{{{
import java.util.*;
import java.math.*;
import java.io.*;

public class Main {
    static public void main(String args[]) throws Exception{
        Scanner sc = new Scanner(new File("puzzle.in"));
        PrintWriter pw = new PrintWriter(new File("puzzle.out"));
        BigInteger a, b, c, ret;
        a = sc.nextBigInteger();
        b = sc.nextBigInteger();
        c = sc.nextBigInteger();
        a = solve(a);
        b = solve(b);
        c = solve(c);

        ret = a.add(b).add(c);
        pw.println(ret);
        sc.close();
        pw.close();
    }

    static BigInteger solve(BigInteger n) {
        if (n.equals(BigInteger.ONE)) return BigInteger.ZERO;
        BigInteger ret = solve(n.add(BigInteger.ONE).shiftRight(1));
        ret = ret.add(BigInteger.ONE);
        return ret;
    }
}
}}}
import java.util.*;
import java.math.*;
import java.io.*;
public class Main {
    static public void main(String args[]) throws Exception{
        Scanner sc = new Scanner(new File("puzzle.in"));
        PrintWriter pw = new PrintWriter(new File("puzzle.out"));
        BigInteger a, b, c, ret;
        a = sc.nextBigInteger();
        b = sc.nextBigInteger();
        c = sc.nextBigInteger();
        a = solve(a);
        b = solve(b);
        c = solve(c);
        ret = a.add(b).add(c);
        pw.println(ret);
        sc.close();
        pw.close();
    }
    static BigInteger solve(BigInteger n) {
        if (n.equals(BigInteger.ONE)) return BigInteger.ZERO;
        BigInteger ret = solve(n.add(BigInteger.ONE).shiftRight(1));
        ret = ret.add(BigInteger.ONE);
        return ret;
    }
}