山河165 2021-11-30 08:51 采纳率: 100%
浏览 209
已结题

趣味程序设计_舍罕王的失算

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

如果格子数不是64呢?

输入
有多组测试数据。

每行输入一组测试数据,即输入一个格子数n (n不超过64)。

输出
与输入相对应,每行输出一个结果,即麦子总数(单位:粒)。

样例输入 Copy
3
64
样例输出 Copy
7
18446744073709551615

为什么我输入64的时候它输出0啊?有没有大佬解释下,然后把新的程序给我看一下,求求了

img

  • 写回答

2条回答 默认 最新

  • 关注

    越界了啊,把long long sum=0改成unsigned long long sum=0;
    printf哪里用%llu
    运行结果如下:

    img

    代码修改如下:

    #include<stdio.h>
    #include<math.h>
    
    int main()
    {
        int n,i;
        unsigned long long sum = 0;
        while(scanf("%d",&n)!= EOF)
        {
            sum = 0;
            for(i=1;i<=n;i++)
            {
                sum += pow(2.0,i-1);
            }
            printf("%llu\n",sum);
        }
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    如有帮助,请点击我的回答下方的“采纳该答案”帮忙采纳一下,谢谢。

    img

    回复
    山河165 回复 技术专家团-小桥流水 2021-11-30 10:31

    为什么在codeblocks里输出的时候还是0?

    1
    回复
    技术专家团-小桥流水 回复 山河165 2021-11-30 13:39

    不同的编译器有一些差别,应该还是越界的问题。

    回复
    展开全部4条评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月30日
  • 创建了问题 11月30日

悬赏问题

  • ¥20 校园网认证openwrt插件
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
  • ¥15 某东JD算法逆向算法
  • ¥15 求GCMS辅导数据分析
  • ¥30 SD中的一段Unet下采样代码其中的resnet是谁跟谁进行残差连接
  • ¥15 Unet采样阶段的res_samples问题
  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用
  • ¥15 我如果只想表示节点的结构信息,使用GCN方法不进行训练可以吗
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部