幼儿园里,有3个小朋友编号分别是1、2、3,他们按自己的编号顺序围坐在一张圆桌旁,每个小朋友的面前分别有8、9、10颗糖果。现在做一个分糖果游戏,从1号小朋友开始,将自己的糖果平均分成三份(如果有多余的糖果,则自己立刻吃掉),自己留一份,其余两份分给相邻座位的两个小朋友。接着,2号、3号小朋友也同样这么做。请问一轮后,每个小朋友面前分别有多少糖果?写出代码
时间: 2023-04-06 20:01:25 浏览: 630
有10个小孩围成一圈并依次编号,教师指定从第2个小孩开始报数,报到第3个小孩即令其出列
我可以回答这个问题。一轮后,每个小朋友面前分别有9颗糖果。以下是代码实现:
#include <stdio.h>
int main() {
int candies[3] = {8, 9, 10}; // 每个小朋友面前的糖果数
int i, j, k; // 循环变量
// 一轮分糖果
for (i = 0; i < 3; i++) {
int share = candies[i] / 3; // 平均分成三份
candies[i] -= share * 2; // 留一份,其余两份分给相邻座位的两个小朋友
candies[(i+1)%3] += share;
candies[(i+2)%3] += share;
}
// 输出每个小朋友面前的糖果数
for (i = 0; i < 3; i++) {
printf("小朋友%d面前有%d颗糖果\n", i+1, candies[i]);
}
return 0;
}
阅读全文