c语言编程,10个小朋友围成一圈分糖果。

c语言编程,10个小朋友围成一圈分糖果。,第1张

#include <stdio.h>

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

大体的思路应该就是这个样子。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12457415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存