找水王

#include<iostream>
using namespace std;
#include<ctime>
#define N 100

int main()
{
	cout<<"请输入帖子数:"<<endl;
	int a[N],s;
	cin>>s;

	srand( (unsigned)time( NULL ) );
	int m=rand()%10;
	for(int i=0;i<s;i++)
	{
		if(rand()%2==1)
		{a[i]=m;}
		else
			a[i]=rand()%10;
	}
	for(int i=0;i<s;i++)
		cout<<a[i]<<"  ";
	int x=a[0],y=0;
	for(int i=1;i<s;i++)
	{
		if(y>=0)
		{
			if(a[i]==x)
				y++;
			else
				y--;
		}
		else
		{
			x=a[i];
			y=0;
		}
	}
	if(y<0)
	       cout<<"没有水王!"<<endl;
	else
		cout<<"水王是"<<x<<endl;
	
}

思路:先用随机生成数生成一串代表id的数组,即先随机生成一个数,当随机生成的书取余2后为1时,此时的id为一开始生成的数,否则id为再重新生成的一个数。一开始自己想的是如果水王的帖子数达到一半以上,那么会不会id相连的数最大的是水王!但是3+2的情况就不可以了!同学的思路:用一个变量计数,当这个帖子的id与上一个帖子一样的情况下变量+1,否则-1,当变量<0时,变量归0,且记下此时的id,当到最后变量为正时,记下的id既是水王,否则无水王。

感想:他是怎么想到的。。。。。。

posted @ 2015-05-19 00:21  啊啾有人想我  阅读(131)  评论(0编辑  收藏  举报