版权声明:转载请注明出处https://blog.csdn.net/hhmy77 https://blog.csdn.net/hhmy77/article/details/88726949
蓝桥杯的题目表述我实在是无力吐槽了。。
这道题表述首先没说分一半是向上还是向下取整。然后有一个特别大的问题题目没有说明白
由于是循环分糖果,那么A将会得到上一个人给的糖果,此时A应该给下一个人A当前总共的糖果数,这个逻辑没问题吧??然而正确的做法是分给下一个人A的原始糖果数。我一直再用当前的一半来模拟。写得我都怀疑人生了,这么简单的题目…吐血
#include<bits/stdc++.h>
using namespace std;
int N;
int ary[100];
bool check(int a[])
{
int s=a[0];
for(int i=0;i<N;i++)
{
if(a[i]!=s)return false;
}
return true;
}
int main()
{
cin>>N;
for(int i=0;i<N;i++)
{
cin>>ary[i];
}
int ans=0;
while(!check(ary))
{
int temp=0;
for(int i=0;i<N;i++)
{
if(i==0)
{
temp=ary[i]/2;
ary[i]-=ary[i]/2;
}
else
{
ary[i-1]+=ary[i]/2;
ary[i]-=ary[i]/2;
}
}
ary[N-1]+=temp;
for(int i=0;i<N;i++)
{
cout<<ary[i]<<" ";
}
cout<<endl;
for(int i=0;i<N;i++)
{
if(ary[i]%2!=0)
{
ary[i]++;
ans++;
}
}
}
cout<<ans;
}