it光

学而时习之,温故而知新!

放麦子 valueof substring

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了搜索

         */

    }

}

阅读更多

扫码向博主提问

去开通我的Chat快问

itguangit

乐于助人,分享我一路走来的经验。
版权声明:欢迎转载,但请注明出处 https://blog.csdn.net/itguangit/article/details/49914407
个人分类: 光哥java学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭