这是1张棋盘,共64格,第1格放1粒麦子,第2格放2粒麦子,第3格放4粒麦子……麦子放到第几格就超过1亿粒了。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是1张棋盘,共64格,第1格放1粒麦子,第2格放2粒麦子,第3格放4粒麦子……麦子放到第几格就超过1亿粒了。相关的知识,希望对你有一定的参考价值。

传说西塔发明了国际象棋而使国王十分高兴,他决定要重赏西塔,西塔说:“我不要你的重赏 ,陛下,只要你在我的棋盘上赏一些麦子就行了。在棋盘的第1个格子里放1粒,在第2个格子里放2粒,在第3个格子里放4粒,在第4个格子里放8粒,依此类推,以后每一个格子里放的麦粒数都是前一个格子里放的麦粒数的2倍,直到放满第64个格子就行了”。区区小数,几粒麦子,这有何难,“来人”,国王令人如数付给西塔。

计数麦粒的工作开始了,第一格内放1粒,第二格内放2粒第三格内放2’粒,…还没有到第二十格,一袋麦子已经空了。一袋又一袋的麦子被扛到国王面前来。但是,麦粒数一格接一格飞快增长着,国王很快就看出,即便拿出全国的粮食,也兑现不了他对西塔的诺言。

原来,所需麦粒总数为:2+2^2+2^3+……+2^64 =18446744073709551615

这些麦子究竟有多少?打个比方,如果造一个仓库来放这些麦子,仓库高4公尺,宽10公尺,那么仓库的长度就等于地球到太阳的距离的两倍。而要生产这么多的麦子,全世界要两千年。尽管国家非常富有,但要这样多的麦子他是怎么也拿不出来的。这么一来,国王就欠了西塔好大一笔债。

再如:一张纸对折64次,其高度的距离可以从地球到月球,可想而知其数量之大。
参考技术A

在第28个格子里的谷子超过一亿. 也就是说在第27个格子总量就已经超过1亿,大约为1亿3千4百万粒,当然我把精确度计算的低了.

参考技术B 1+2+2`2+……+2`64
=2`65-1
=18446744073709551615

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

/*  放麦子
    你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬
    ,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,
    在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......
    后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。
    国王以为他只是想要一袋麦子而已,哈哈大笑。
    当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!
    请你借助计算机准确地计算,到底需要多少粒麦子。
    答案写在“解答.txt”中,不要写在这里!
 */
import java.math.BigInteger;

public class Demo03 
	public static void main(String[] args) 
		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);
	
运行结果:
18446744073709551614


以上是关于这是1张棋盘,共64格,第1格放1粒麦子,第2格放2粒麦子,第3格放4粒麦子……麦子放到第几格就超过1亿粒了。的主要内容,如果未能解决你的问题,请参考以下文章

double 精度问题

LQ0262 棋盘放麦子大数+亿进制

LQ0262 棋盘放麦子大数+亿进制

用米粒填充国际象棋盘

达依尔的问题,在国际象棋棋盘放麦子

世界第八大奇迹:复利