求國際象棋中國王要打賞發明象棋的大臣的詳細故事 匿名使用者 1級 2007-09-26 回答

這是印度的一個古老傳說,舍罕王打算重賞象棋發明人、宰相西薩·班·達依爾。這位聰明的大臣的胃口看來並不大,他跪在國王面前說: ‘陛下,請您在這張棋盤的第一個小格內,賞給我一粒麥子,在第二個小格內給兩粒,第三格內給四粒,用這樣下去,每一小格內都比前一小格加一倍。陛下,把這樣擺滿棋盤上所有64格的麥粒,都賞給您的僕人吧!’

‘愛卿,你所求的並不多啊。”國王說道,心裡為自己對這樣一件奇妙的發明賞賜的許諾不致破費太多而暗喜。“你當然會如願以償的,”國王命令如數付給達依爾。

計數麥粒的工作開始了,第一格內放1粒,第二格內放2粒第三格內放2’粒,…還沒有到第二十格,一袋麥子已經空了。一袋又一袋的麥子被扛到國王面前來。但是,麥粒數一格接一格飛快增長著,國王很快就看出,即便拿全印度的糧食,也兌現不了他對達依爾的諾言。

原來,所需麥粒總數

1+2+2^2+2^3+2^4+……+2^63=2^64-1

=18446744073709551615。

這些麥子究竟有多少?打個比方,如果造一個倉庫來放這些麥子,倉庫高4公尺,寬10公尺,那麼倉庫的長度就等於地球到太陽的距離的兩倍。而要生產這麼多的麥子,全世界要兩千年。儘管印度舍罕王非常富有,但要這樣多的麥子他是怎麼也拿不出來的。這麼一來,舍罕王就欠了宰相好大一筆債。要麼是忍受達依爾沒完沒了的討債,要麼是乾脆砍掉他的腦袋。結果究竟如何,可惜史書上沒有記載。

求國際象棋中國王要打賞發明象棋的大臣的詳細故事 Quinn 1級 2007-09-26 回答

#include using namespace std; void main() { long double i=1,sum=0; int j; for(j=0;j<64;j++) { sum+=i; i*=2; cout<