蓝桥杯-放麦子-java

时间:2022-06-20 03:14:43

/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生

* All rights reserved.

* 文件名称: 蓝桥杯赛题

* 作    者:   彭俊豪

* 完成日期:   2016   年 04月 01日

* 版 本 号:      001

* 对任务及求解方法的描述部分

* 输入描述: 无

* 问题描述:

  你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,
大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒
麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,直到放完所有
棋盘格(国际象棋共有64格)。

国王以为他只是想要一袋麦子而已,哈哈大笑。

当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!

请你借助计算机准确地计算,到底需要多少粒麦子。

* 程序输出: 无

* 程序头部的注释结束

*/

上代码:

import java.math.BigInteger;

public class Main {

  public static void main(String[] args) {
    BigInteger b1 = new BigInteger("1");
    for (int i = 1; i <= 64; i++) {
      b1 = b1.multiply(BigInteger.valueOf(2));
    }
    b1 = b1.subtract(BigInteger.ONE);
    System.out.println(b1);
  }

}