蓝桥杯 分糖果...

版权声明:转载请注明出处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;
} 

猜你喜欢

转载自blog.csdn.net/hhmy77/article/details/88726949