蓝桥杯往届试题--分糖果 简单的思维题目

来源:互联网 发布:mac 终端 ssh 端口 编辑:程序博客网 时间:2024/05/29 03:33

本题为一道简单的思维题目,就是组成了一个圈,每个人 把他的糖果的一半给他左面的人,别忘了最后一个人的糖果要给第一个一半,另外一个要注意的地方便是(每一个人的初始糖果给别人一半,并不是接受了别人的糖果以后再给别人一半),知道了上述的条件,我想本题应该很简单了。下面附上本渣渣的AC代码

#include<cstdio>#include<iostream>using namespace std;int sum=0;int n;int a[1005];int main(){    while(cin>>n)    {        for(int i=1; i<=n; i++)        {            cin>>a[i];        }        for(int m=1; m<=100; m++)        {            int cnt=a[1];            for(int i=1; i<n; i++)            {                a[i]=a[i]+(a[i+1]/2);                a[i+1]=a[i+1]/2;            }            a[n]=a[n]+cnt/2;            a[1]=a[1]-(cnt/2);            for(int i=1; i<=n; i++)            {                if(a[i]%2!=0)                {                    a[i]++;                    sum++;                }            }            int s=0;            for(int i=1; i<n; i++)            {                if(a[i]==a[i+1])                {                    s++;                }            }            if(s==n-1)            {                break;            }        }        cout<<sum<<endl;    }    return 0;}
1 0