其他分享
首页 > 其他分享> > 棋盘上的麦粒

棋盘上的麦粒

作者:互联网

题目描述

舍罕是古印度的国王,据说他十分好玩。宰相依达尔为了讨好国王,发明了现今的国际象棋献给国王。国王非常喜欢,决定嘉奖宰相,许诺满足宰相提出的任何要求。宰相指着棋盘要求:“陛下,请您按棋盘的格子赏赐我一点小麦吧,第一个小格赏我1粒麦子,第二个小格赏我2粒,第三个小格赏4粒,以后每一小格都比前一个小格赏的麦子增加一倍,只要把棋盘上全部64个小格按这样的方法得到的麦子都赏赐给我,我就心满意足了”。国王听了宰相这个“小小”的要求,马上同意了。但是在给宰相麦子时,国王发现他要付出的比自己想象的要多得多,于是进行了计算,结果令他大惊失色。问题是:舍罕王的计算结果是多少粒麦子。

输入要求

输入一个整数n代表棋盘的格子,该数字大于1且小于等于64。如输入2,则表示有2个格子,第一个格子放1粒,第二个格子放2粒,则2个格子一共需要3粒麦子。

输出要求

输出n个格子需要的麦粒数。

输入样例

9

输出样例

511

提示

注意:本题输出数据可能极大。

如果麦粒数sum如下定义:

       unsigned __int64 sum;

 则计算完成后其输出形式为:

       printf("%I64u\n", sum);


参考程序

#include<stdio.h>
#include<math.h>

int main()
{
    int n,i,a;
    unsigned __int64 sum=0;
    
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        a = pow(2,i);
        sum += a;
        //sum += pow(2,i);语句出错
    }
    printf("%I64u\n",sum);
    
    return 0;
}

 

标签:麦子,麦粒,格子,sum,小格,棋盘,宰相
来源: https://blog.csdn.net/weixin_44643510/article/details/113738956