當前位置:首頁 » 編程語言 » c語言麥粒棋盤上的麥粒
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言麥粒棋盤上的麥粒

發布時間: 2022-06-16 18:22:52

A. C語言進新手問題

for語句後多寫了一個零,這樣整個循環會變成空循環;當i等於n時循環才結束,再運行t=t*i和s=s+t這兩條語句,最後s會等於n+1的值。最後的輸出應該是s,不應該是n吧?循環的次數也少一次,當格數為2時,循環應該運行1次對吧?但是在這個程序中一次都沒有運行。
綜合上述整個程序可以改為:
#include "stdio.h"
void main()
{
int t,s,i,n;
printf("請輸入格數\n");
scanf("%d",&n);
t=1,s=1;
for(i=2;i<=n;i++)
{
t=t*i;
s=s+t;
}
printf("%d\n",s);
}

B. 國際象棋上的麥粒(電腦編程)

屏的中央,則應向下

(填「上」或「下」)調節凸透鏡.

C. 誰知道棋盤上的麥粒問題答案是多少

從第一個到最後一個:1+2+2²+2³+2⁴……+2的63次方=18446744073709551615(粒)
最後一個格子里的麥粒:2的63次方=9223372036854775808(粒)
(還有吐槽一句:那個第一個回答的「熱心網友」,你真的認真看題了嗎?你知道什麼是棋盤麥粒問題嗎?)

D. C語言求助

  • #include "stdio.h"

  • #include "conio.h"

  • /*舍罕是古印度的國王,據說他十分好玩,宰相達依爾為討好國王,發明了現今的國際象棋獻給國王。舍罕非常喜歡這項游戲,於是決定嘉獎達依爾,許諾可以滿足達依爾提出的任何要求。達依爾指著舍罕王前面的棋盤提出了要求:「陛下,請您按棋盤的格子賞賜我一點麥子吧,第1個小格賞我一粒麥子,第2個小格賞我兩粒,第3個小格賞四粒,以後每一小格都比前一個小格賞的麥粒數增加一倍,只要把棋盤上全部64個小格按這樣的方法得到的麥粒都賞賜給我,我就心滿意足了。」舍罕王聽了達依爾這個「小小」的要求,想都沒想就滿口答應下來。

  • 結果在給達依爾麥子時舍罕驚奇地發現它要給達依爾的麥子比自己想像的要多得多,於是他進行了計算,結果令他大驚失色。問題是:舍罕王的計算結果是多少粒麥子?

  • */

  • void main()

  • {

  • //定義一個變數,用來保存麥子的個數

  • double count=0;

  • //循環變數i

  • int i;

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

  • //累加

  • count+=pow(2,i);

  • }

  • //輸出

  • printf("%lf",count);

  • }

E. 棋盤麥子公式

棋盤麥子公式是:2的64次方-1,1 + 2 + 4+ 8 + ……… + 2的63次方 = 2的64次方-1 = 18446744073709551615(粒)。

在印度有一個古老的傳說:舍罕王打算獎賞國際象棋的發明人——宰相:西薩·班·達依爾。國王問他想要什麼,他對國王說:「陛下,請您在這張棋盤的第1個小格里,賞給我1粒麥子,在第2個小格里給2粒,第3小格給4粒,以後每一小格都比前一小格加一倍。

請您把這樣擺滿棋盤上所有的64格的麥粒,都賞給您的僕人吧!」國王覺得這要求太容易滿足了,就命令給他這些麥粒。當人們把一袋一袋的麥子搬來開始計數時,國王才發現:就是把全印度甚至全世界的麥粒全拿來,也滿足不了那位宰相的要求。

棋盤麥子問題的本質:

這個故事背後的指數爆炸也是當今經常困擾人們的問題,人們更期望解決問題的代價是隨著問題規模贈大而以一種近似多項式形式增長而非指數增長的規模。

以上內容參考:網路-棋盤麥粒問題

F. 棋盤上的麥粒

program sss;
var i,n:longint;
t:qword;
begin
readln(n);
t:=1;
for i:=1 to n do
t:=t*2;
writeln(t);
end.
qword正好是2^64

G. 什麼是棋盤上的麥粒

古代印度的舍罕王,打算重賞國際象棋的發明者——宰相西薩。西薩向國王請求說:「陛下,我想向您要一點糧食,然後將它們分給貧窮的百姓。」

國王高興地同意了。

「請您派人在這張棋盤的第一個小格內放上一粒麥子,在第二格放兩粒,第三格放四粒……照這樣下去,每一格內的數量比前一格增加一倍。陛下啊,把這些擺放在棋盤上的所有64格的麥粒都賞賜給您的僕人吧!我只要這些就夠了。」國王許諾了這個看起來微不足道的請求。

不過當時所有在場的人都不知道這個結果。他們想到僅用一小碗麥粒就能填滿棋盤上的十幾個方格,都禁不住笑了起來,連國王也認為西薩太傻了。

隨著放置麥粒的方格不斷增多,搬運麥粒的工具也由碗換成盆,又由盆換成籮筐。即使到這個時候,大臣們還是笑聲不斷,直至有人提議不必如此費事了,乾脆裝滿一馬車麥子給西薩就行了!

不知從哪一刻起,喧鬧的人們突然安靜下來,大臣和國王都驚詫得張大了嘴:因為,即使傾全國所有,也填不滿下一個格子了。

千百年後的今天,我們都知道事情的結局:國王無法實現自己的承諾。這是一個長達20位的天文數字!這樣多的麥粒相當於全世界兩千年的小麥的產量。

凡事都要有所思索,有許多事並非一開始想當然那樣簡單。國王和大臣就是犯了這樣的錯誤,想當然地認為從1粒麥粒開始,縱使放滿64格也沒有多少,於是國王滿口答應,大臣紛紛嘲笑,結果卻是出人意料。

做任何事都不要拍拍腦袋就得出結論,許多時候人會由於慣性思維而產生思維盲點,要多思考,才能避免出現國王那樣的錯誤。

「我們必須時時進行思考,今天這個世界,總是讓人感到陌生和壓力,甚至有些恐懼。只有深思熟慮,才能戰勝愚昧,在積極的思考中勇敢地面向未來。」讓我們記住哈佛教授弗吉尼亞·約翰遜的這句話吧!

——引自延邊人民出版社《感悟百年哈佛》

H. 棋盤上的麥粒有什麼問題

在印度有一個古老的傳說:舍罕王打算獎賞國際象棋的發明人——宰相西薩·班·達依爾。

國王問他想要什麼,他對國王說:「陛下,請您在這張棋盤的第1個小格里,賞給我1粒麥子,在第2個小格里給2粒,第3小格給4粒,以後每一小格都比前一小格加一倍。請您把這樣擺滿棋盤上所有的64格的麥粒,都賞給您的僕人吧!」

國王覺得這要求太容易滿足了,就命令給他這些麥粒。當人們把一袋一袋的麥子搬來開始計數時,國王才發現:就是把全印度甚至全世界的麥粒全拿來,也滿足不了那位宰相的要求。

那麼,宰相要求得到的麥粒到底有多少呢?總數為:

1+2+4+8+……+2的63次方=2的64次方-1

第第第第第

一二三四……64

格格格格格

=18446744073709551615(粒)

人們估計,全世界兩千年也難以生產這么多麥子!

與這十分相似的,還有另一個印度的古老傳說:在世界中心貝拿勒斯(在印度北部)的聖廟里,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂梵塔。

不論白天黑夜,總有一個僧侶在按照下面的法則移動這些金片:一次只移動一片,不管在哪根針上,小片必須在大片上面。當所有的金片都從梵天穿好的那根針上移到另外一根針上時,世界就將在一聲霹靂中消滅,梵塔、廟宇和眾生都將同歸於盡。

不管這個傳說是否可信,如果考慮一下把64片金片,由一根針上移到另一根針上,並且始終保持上小下大的順序,一共需要移動多少次,那麼,不難發現,不管把哪一片移到另一根針上,移動的次數都要比移動上面一片增加一倍。這樣,移動第1片只需1次,第2片則需2次,第3片需4次,第64片需2的63次方次。全部次數為:18446744073709551615次這和「麥粒問題」的計算結果是完全相同的!假如每秒鍾移動一次,共需要多長時間呢?一年大約有31556926秒,計算表明,移完這些金片需要5800多億年!

I. C++ 求棋盤上麥粒

#include<stdio.h>
#include<math.h>
int main()
{
unsigned double sum;
int a,b;
sum=0;
b=0;
scanf("%d",&a);
do
{
sum=sum+pow(2,b);
b++;
}while(b<a);
printf("%d\n", sum);
return 0;
}

J. 關於電腦程序設計的

C語言 函數體 int Count(int n);n表示方格個數
int Count(int n)
{
int i=1,count=0,sc=1;
for(;i<=n;i++)
{
count=count+sc;
sc=sc*2;

}
return count;
}