为了账号安全,请及时绑定邮箱和手机立即绑定

棋盘麦粒问题

相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(8×8共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么,你编程计算一下大约需要多少立方小麦(1立方米约为142000000粒)? 用c语言咋求?

正在回答

1 回答

#include <stdio.h>

int main()

{

    int i;
    int num=1;
    for(i=1;i<=65;i++){
        num*=2;
    }
    printf("摆满棋盘需要%d粒麦子\n",num-1);
    //数学思路:总数=1+2+。。。。。。+2的64次方
    //              =2的65次方减1
    
    //你可以把2的64次方视为1,整个过程倒过来就是
    //1+1/2+1/4+....+1/n=2-1/n

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

棋盘麦粒问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号