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

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

题目描述
相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着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;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条