首先,全班 n 个小朋友围成一个大圆圈,按排列顺序依次给他们编号 1,2,…,n。然后,从 1 号小朋友开始,将自己的糖果平均分成三份(如果有多余的糖果则立即吃掉),自己保留一份,其余两份分别分给与他相邻的两个小朋友。接下来按照编号顺序,2 3 4 …,直到 n 号小朋友都这样做。
问经过一轮分糖果游戏,每个小朋友手上分别有多少个糖果?
输入格式:
第一行为小朋友人数 n,保证 3≤n≤30。
第二行为空格隔开的 n 个正整数,依次表示游戏开始时按编号从 1 到 n 的顺序每个小朋友手上的糖果数。
输出格式:
在一行中输出空格隔开的 n 个整数,依次表示游戏结束时按编号从 1 到 n 的顺序每个小朋友手上的糖果数。
你题目的解答代码如下:
#include <stdio.h>
int main()
{
int n,i;
int a[31];
scanf("%d", &n);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++){
a[i] /= 3;
if (i>1)
a[i-1] += a[i];
else
a[n] += a[i];
if (i<n)
a[i+1] += a[i];
else
a[1] += a[i];
}
for(i=1;i<=n;i++){
if (i>1)
printf(" ");
printf("%d",a[i]);
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!