hongxingb 2022-04-29 18:45 采纳率: 72.7%
浏览 136
已结题

棋盘上的粮食c++求解

. 棋盘上的粮食
【问题描述】
传说,古印度有一个人发明了一种游戏棋,棋盘共64格,玩起来十 分新奇、有趣。他把这种棋献给了国王。国王玩得十分开心,便下 令赏赐献棋人。臣下问献棋人想要什么。献棋人说:他只需要粮 食,要求大王给点粮食便心满意足了。问他需要多少粮食,他说只 要求在棋盘的第一个格子里放一粒米,在第二个格子放两粒米,第 三个格子里放四粒米,总之,后面格子里的米都比它前一格增大一 倍,把64格都放满了就行。国王一听,满口答应。大臣们也都认 为:这点米,算得了什么,便领献棋人去领米。岂料,到后来把所
有仓库里的存米都付出了,还是不够。你知道这是为什么吗?
已知国王一共有N粒米,求最多可以摆满多少个格子,(格子里面的
米粒数量满足献棋人的要求则为摆满,例如第一个格子摆放1粒米就满
了,第2个格子摆放2粒米就满了,依次类推)。
输入:包含一个正整数N;
输出:包含一个正整数,即可以摆放米粒的格子数。
【样例输入】
10000000
【样例输出】
23

  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-04-29 19:27
    关注

    你好,如有帮助,麻烦采纳一下

    
    #include<stdio.h>
    #include<stdlib.h>
    
    double A(int n);
    
    int main()
    {
        double n=0,m;
        int i;
        for(i=0;i<64;i++)
        {
            m=A(i);
            n+=m;
        }
        printf("sum = %e\n",n);
        return 0;
    }
    
    double A(int n)
    {
        int i;
        double m=1;
        if(n!=0)
        {
            for(i=1;i<=n;i++)
            {
                m*=2;
            }
        }
        return m;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 4月29日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题