C语言作业求助

海盗之死,有一群海盗,挖宝1000个金币,然后按照以下规则分金币,每个海盗拿走所有金币的一半再多拿一个,老大拿完老二拿,结果轮到第几个海盗的时候无钱可拿,愤而自杀?... 海盗之死,有一群海盗,挖宝1000个金币,然后按照以下规则分金币,每个海盗拿走所有金币的一半再多拿一个,老大拿完老二拿,结果轮到第几个海盗的时候无钱可拿,愤而自杀? 展开
 我来答
xgn911
2022-11-05 · TA获得超过1359个赞
知道小有建树答主
回答量:1493
采纳率:96%
帮助的人:625万
展开全部

C代码和运行结果如下:

可见轮到第10个海盗时无金币可分~

附源码:

#include <stdio.h>

int main() {

    int coins = 1000, i = 1; // 初始金币数

    while (coins > 0) {

        coins -= coins / 2 + 1; // 每次拿走一半加1还剩下的金币数

        printf("第%d个海盗拿完还剩%d金币\n", i, coins); // 为帮助理解,可不打印

        i++;

    }

    printf("第%d个海盗愤而自杀\n", i); // 此时coins=0,i为所求

    return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式