找“水王”

题目:

  三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

思路:

题目中提到水王的发帖数超过总数的一半,针对这一条件我们可以把第一个id赋值给一个变量利用循环使下一个id与之比较,相等令一个值(提前设好)+1不等-1,每次循环开始判断该值是否为0,为0则令对应得id赋值给原来的变量,依次按照此规则便利一遍后得到的最后更新变量为水王id。

代码:

#include<iostream>
#include<string>
using namespace std;

int main()  
{  
	string id[100];
	int m=0,i,n;
	string s;
	cout<<"请输入ID数:";
	cin>>n;
	cout<<"输入ID:";
	for (i=0;i<n;i++)
	{
		cin>>id[i];
	}
	for(i=0;i<n;i++)
	{
		if(m == 0)
		{
			s = id[i];
			m = 1;
		}
		else
		{
			if(s == id[i])
			{
				m++;
			}
			else
			{
				m--;
			}
		}
	}
	cout<<"水王ID是:"<<s<<endl; 
	return 0;  
}  

  

截图:

总结:

此次的作业考察我们观察思考能力,在看到这样的题目我们开始也是没有思路,而我们仔细读题目当抓住题目主要问题即水王发帖数超过总数一半时题目的思路也会渐渐的清晰,这就告诉我们在遇到问题时应先仔细分析总结出题目的要点有针对性的解决问题。

原文地址:https://www.cnblogs.com/lingxi/p/4508799.html