首页 > 其他分享 >舍罕王的失算

舍罕王的失算

时间:2023-05-15 20:47:32浏览次数:30  
标签:麦子 失算 格放 宰相 64 棋盘 舍罕王

一、问题描述
相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第1格中放1粒,第2格放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上64格,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请编程求出国王总共需要将多少麦子赏赐给他的宰相。

二、设计思路

1、根据题意,已得麦子的放法,后面每一格的麦子数都是前一格的两倍,依次放完64格。由此可得放置的麦子总数为1+2+4+8+16+...+263=

2、首先定义sum=0,i=1,其中i<=64,然后对sum进行for循环sum=sum+2i,直到i<=64的条件不成立为止。

三、程序流程图

 

四、代码实现

#include<stdio.h>
int main()
{
double sum=0;
int i;
for(i=1;i<=64;i++)
sun=sum+pow(2,i-1);
printf("国王总共要赏赐给宰相的麦子数为:\n%f",sum);
}

 

标签:麦子,失算,格放,宰相,64,棋盘,舍罕王
From: https://www.cnblogs.com/jais/p/17402985.html

相关文章

  • 2.9舍罕王的失算
    #include<stdio.h>#include<math.h>intmain(){doublesum=0;/*定义doub1e型变量sum存放累加和*/inti;/*使用循环求累加和*/for(i=1;i<-64;i++)sum-sum+pow(2,i-1);printf("国王总共需要赏赐给宰相的麦子数为:\n%fNn",sum);/*打印结果*/} ......
  • 19.舍罕王的失算
      代码实现:#include<stdio.h>intmain(){unsignedlonglongsum=1,tmp=1;inti=0;//从第二个格子开始算,总共63个格子for(i=1;i<64;i++){tmp*=2;sum+=tmp;}printf("国王总共需要将%llu粒麦子赏赐给他的宰......
  • 舍罕王的失算
    ```#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<math.h>main(){   doublesum=0;      /*定义double型变量sum存放累加和*/   inti;   /*使用循环求累加和*/   for(i=1;i<=64;i++)       sum=sum+pow(2,i......
  • 舍罕王的失利
    一、问题描述   相传国际象棋是古印度舍罕王的宰相达依尔发明的,舍罕王十分喜爱象棋。决定让宰相自己选择何种赏赐。这位聪明的宰相指着8x8共64格的象棋棋盘说:陛下,请您赏赐给我一些麦子吧,就在棋盘的第一格中放1粒,第二格放2粒,第三格放4粒,以后每一格都比前一格增加一倍,依次放完......
  • 2.9王的失算
    1.问题描述:国际象棋有64个格子第一个格子放1粒麦子,第二个格子放2粒麦子,第三个格子放3粒麦子......以此类推,最后64个格子中一共有多少粒麦子;2.问题分析:这个问题的本质即从2的0次方一直加到2的63次方,最后总数是多少。3.算法设计:这个问题需要两个简单的部分:第一部分为求出2的n次方,......
  • day 19 舍罕王的失算
    1.该题为累加;2.通过计算可转化为2的65次方-2;#include<iostream>usingnamespacestd;intmain(){doublesum=1;for(inti=0;i<64;i++){sum*=2;}cout<<sum-2;return0;}  ......
  • 舍罕王的失算
    一、问题描述: 二、设计思路:  此题用pow函数,注意pow函数的格式,必须是double形  三、程序流程图:  四、代码实现:#include<stdio.h>#include<math.h>intmain(){doublea=1;inti;for(i=1;i<=63;i++){a+=pow(2,i);}printf(......
  • 舍罕王的失算
    自然语言解决问题:只要考虑如何设计算法实现累加和即可。显然,可采用循环结构,每循环一次就实现一次累加,总共循环64次可获得累加和流程图: 具体代码:#include<stdio.h>#include<math.h>main(){doublesum=0;inti;for(i=1;i<=64;i++)sum=sum+pow(2,i-1);printf("国王总共需要......
  • 经典算法——舍罕王算
    传说,印度的舍罕王打算重赏国际象棋的发明人,当时的宰相是西萨·班·达依尔。这位聪明的宰相胃口似乎并不大,他跑在国王面前说:“陛下,请您在这张棋盘的第一小格内,赏给我一粒麦......