1 条题解

  • 0
    @ 2024-12-24 9:59:26

    C++ :

    //题目说的是一个分糖果的游戏,n个学生围成一圈,每个人手上有a[i]个糖果,每一轮游戏开始时,学生手中的糖果都是偶数,他们都把自己手中一半的糖果分给他右边的同学。分完后手中糖果数是奇数的,老师会给他一颗糖果。如果所有人手中的糖果数都一样 游戏结束。
    //    输出总共进行了多少轮游戏 还有最后学生手中的糖果数。
    #include "stdio.h"
    int main()
    {
       int n,a[1000],s[1000];
       while(1)
       {
         scanf("%d",&n);
         if(n==0)
             break;
         int i;
         for(i=0;i<n;i++)   //初始化
       scanf("%d",&s[i]);
         int count=0;
         while(1) //开始吹口哨
         {
            for(i=0;i<n;i++)
            {
               if(s[i]%2==1)
                   a[i]=s[i]+1;
               else
                   a[i]=s[i];
            }
           for(i=0;i<n-1;i++)
                if(a[i]!=a[i+1])
                    break;
             if(i==n-1)
                 break;
            for(i=1;i<=n;i++)
            {
                s[i%n]=a[i%n]/2+a[i-1]/2;
            }
            count++;
         }
    printf("%d %d\n",count,a[0]);
        
       }
       return 1;
    }
    
    • 1

    信息

    ID
    1486
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者