当前位置:首页 » 编程语言 » 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;
}