首页 > 编程语言 > 详细

nyoj 45 棋盘覆盖 【Java大数】

时间:2014-09-06 23:53:24      阅读:454      评论:0      收藏:0      [点我收藏+]

先算出来2^k*2^k 之后减去1,最后除3即可

代码:

import java.util.Scanner;
import java.math.*;
public class Main{
	public static void main(String[] args){
		Scanner cin = new Scanner(System.in);
		BigInteger ans,ans1, temp, temp1, temp2;
		int n, i = 0;
		n = cin.nextInt();
		temp = new BigInteger("2");
		temp1 = new BigInteger("1");
		temp2 = new BigInteger("3");
		while(i < n){
			int k;
			k = cin.nextInt();
			ans = new BigInteger("2");
			int j = 2;
			for(; j <= k; j ++){
				ans = ans.multiply(temp);
				//System.out.println(ans);
				//j ++;
			}
			//ans = temp.pow(k);
			ans = ans.multiply(ans);
			//System.out.println(ans);
			ans = ans.subtract(temp1);
			//System.out.println(ans);
			System.out.println(ans.divide(temp2));
			i++;
		}
	}
}        
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=45

nyoj 45 棋盘覆盖 【Java大数】

原文:http://blog.csdn.net/shengweisong/article/details/39105547

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!