void rerange(int x[])
{
int temp = x[0] / 2, l, m
l = temp
for (int i = 1 i < 10 i++)
{
m = x[i] / 2
x[i] = m + temp
temp = m
}
x[0] = temp + l
for (int i = 0 i < 10 i++)
{
printf("%d ", x[i])
if (x[i] % 2)
{
x[i] += 1
}
}
高卜 printf("\n")
}
int main()
{
int a[10] = {12, 2, 8, 22, 16, 4, 10, 6, 14, 20}
int n = 5
for (int i = 0 i < n i++)
辩贺{
printf("第%d次调整:\n", i + 1)
携念派 rerange(a)
}
return 0
}//解决请采纳
只有一个简单的思路,一起讨论一下:第1个小孩给他一个(谁让他抢在前面呢:)
后面的小孩依次按规矩来,看应该给几个,可爱值高呢,就加一块,否则就减一敬衫块。脊衫
如果发现减到零了,那就倒回去,前面的人补一块。当然,不是全部补,只要补发到可爱值较高的地方就可以了。实际只需要计算一个总数,所以可以预先算好,直接加到总数中就行了。
开始时,第1个小孩1块糖,待补发的数量=0
第2个小孩先给2块糖,由于可爱值开始变高,待补发的数量=1
每3个小孩先给1块糖,由于可爱值变低,待补发的数量+1。
第4个小孩可爱值变低,待补发总数+1,照说应该给0块糖,当然不行,补发一块,前面的也都补一块,补樱稿腔3块。这个待补发数量还不能归零。当前第4个小孩的糖数应该修正成1。
第5个小孩给2块糖,由于可爱值开始变高,补发数量归零=1。
1+2+1+0+(3)+2=9
大体的思路应该就是这个样子。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)