zoukankan      html  css  js  c++  java
  • Big Exponential Addition

    Big Exponential Addition
    给定一非负整数n计算2^n的值,一般而言把 2 乘上 n 次,就能得到答案。然而,当n特别大时,2^n要一次次地乘2可能稍嫌太慢,面对此一巨大问题利用分治(divide-and-conquer)演算法适当地拆解2 ^ n是个不错的策略,特别是在进行2^m + 2^n这类运算时,其效果更为明显。

    INPUT
    每一行有两非负整数,m与n 之间相隔一空白键。

    OUTPUT
    2^m + 2^n的精确值(每一笔输出在十进制2,000位以内),每个caes输出完毕後请输出一个换行字元做为区隔。

    SAMPLE INPUT
    3
    12 13
    20 14
    140 115


    SAMPLE OUTPUT
    12288
    1064960
    1393796616446538814624603420284493227884544


    答案

    public class BigExponentialAddition {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int num = scan.nextInt();
            while(num>0){
                int i = scan.nextInt();
              int j = scan.nextInt();
              System.out.println(bigExpoonential(i,j));
              num--;
            }
            
            
        }
        public static BigInteger bigExpoonential(int i, int j) {
    
            int poor = Math.abs(i - j);
            int minNum = 0;
            BigInteger num_tow = BigInteger.valueOf(2);
            minNum = i>j ? j : i;
            return num_tow.pow(minNum).multiply(num_tow.pow(poor).add(BigInteger.valueOf(1)));
        }
    }
  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/bmbi/p/5281534.html
Copyright © 2011-2022 走看看