0
点赞
收藏
分享

微信扫一扫

放麦子 valueof substring

zidea 2022-09-15 阅读 92

import java.math.BigInteger;


public class Question8 {


/**

* 放麦子 你一定听说过这个故事。国王对发明国际象棋的大臣很佩服, 问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,

* 在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子, 在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,

* 直到放完所有棋盘格(国际象棋共有64格)。 国王以为他只是想要一袋麦子而已,哈哈大笑。

* 当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用! 请你借助计算机准确地计算,到底需要多少粒麦子。

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

/*

* BigInteger total = new BigInteger("0"); BigInteger base = new

* BigInteger("2"); for (int i = 0; i < 64; i++) {

* total =

* total.add(base.pow(i));

*

* } System.out.println(total); System.out.println(base.pow(64).add(new

* BigInteger("-1")));

*/

BigInteger bi = new BigInteger("0");

for (int i = 0; i < 64; i++) {

bi = bi.add(BigInteger.valueOf((long) (Math.pow(2, i))));

}

System.out.println(bi);

/*

*
比如说有个String
* str="12345";substring函数是取一个string子串,如果j=1,那么str.substring(
* j+1)就是取从第二位开始的子串,所以str.substring(j+1)等于"345";
* valueOf是Integer类的一个静态方法,
* 它是把一个string参数转换为Integer类型,那么经过Integer.valueOf(
* "345")转换,345就是一个Integer类型了最后说这个intValue函数
* ,它是将一个Integer类型转换成原始类型int,所以最后len就等于345了搜索。

*/


}


}

举报

相关推荐

0 条评论