C语言作业求助
海盗之死,有一群海盗,挖宝1000个金币,然后按照以下规则分金币,每个海盗拿走所有金币的一半再多拿一个,老大拿完老二拿,结果轮到第几个海盗的时候无钱可拿,愤而自杀?...
海盗之死,有一群海盗,挖宝1000个金币,然后按照以下规则分金币,每个海盗拿走所有金币的一半再多拿一个,老大拿完老二拿,结果轮到第几个海盗的时候无钱可拿,愤而自杀?
展开
1个回答
展开全部
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询