找水王
#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既是水王,否则无水王。
感想:他是怎么想到的。。。。。。

浙公网安备 33010602011771号