水王1

题目:

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

#include<iostream>
using namespace std;
#define N 5
#include<String>

void main()
{
	int n=0;
	string a[N],m;
	cout<<"请输入ID:"<<endl;
	for(int i=0;i<N;i++)
	{
		cin>>a[i];
	}

	m=a[0];

	for(int i=0;i<N;i++)
	{
		if(m==a[i])
		{
			n+=1;
		}
		else
			n-=1;
		if(n<0)
		{
			m=a[i];
		}
	}
	cout<<"水王是:"<<endl;
	cout<<m<<endl;

}

思路:初始化变量n为0,用m来获取ID,每当m与当前ID不相同时,n就减1;反之就加1;当n小于0时更新m为当前ID。因为水王ID出现次数超过一半,所以这相当于用水王的一个ID去消掉其他人的一个ID,最终剩下来的就一定是水王的ID了。

感悟:和上次一样,这次的思路还是别人的,不过这次很受鼓舞。不宜妄自菲薄,不要因为不善编程就放弃思考,有时候问题不在编程,而在思路。只要肯动脑,下一次可能就是别人听你讲了。

时间: 2024-07-30 10:18:08

水王1的相关文章

水王(课堂作业)

题目: 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个"水王",他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该"水王"发帖数目超过了帖子数目的一半.如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 思路:因为考虑到水王发的帖子数量超过了半数,所以可以按顺序将每个帖子的ID每两个作比较,如果相同,则留下,如果不相同,则同时删除两个ID. 代码: public cla

课堂练习------寻找水王

•三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 1 #include<iostream.h> 2 int main() 3 { 4 int water; 5 int a[10]={1,5,2,5,3,5,4,5,5,5}; 6 int j,k=1

随堂练习--找水王2

问题描述: 在上一次练习的基础上,大水王消失了,出现了3个小水王,且每个水王发帖的数量都超过1/4.找出3水王 解决思路: 这1次我们可以通过六个变量来推导出三水王,每两个代表一个水王,其中一个表示 ID,另一个用来使用消除法抵消次数,因为每个水王发帖量都超过1/4,所以一遍运行下来,三水王的ID出现次数都不会被抵消 #include<iostream>#include<string>using namespace std; int main(){    string tieba[

随堂练习--找水王1

问题: •三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 解题思想: 问题可简化为:在str数组中,存在着0-9数字,其中一个数字的个数超过了50%,找到这个数字. 设计思想: 1.先构建一个有若干个数字的数组,其中水王数字超过50%. 2.将相邻数

水王。。。论坛的水王

三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 一.设计思想 根据两两相消的思想,发帖数过半的ID在与其他不同ID比较,相同则计数器加一,不同计数器减一.当计数器为负数时,水王依次下轮. package 界面; import java.util.Sc

找水王

一 题目要求: 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个水王,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该水王发帖的数目超过了帖子数目的一半.如果你有一张该论坛的帖子列表,其中帖子的作者ID也在其中,你能快速的找到这个传说中的水王吗? 二 设计思路: 水王的帖子数量超过了一半,可以将每两个不同的ID号进行比较消除.可以利用栈的思想,先将第一个ID号压入栈,再将第二个ID号压入栈,两个进行比较,不同的话则把第二个ID号弹出栈,然后再接着将第三个I

寻找水王

一.设计思路 1.我采用的方法是两两计算抵消的想法,相邻的两个ID依次比较. 2.计数器用来表示水王出现的次数.默认当计数器为0时,水王就是当前的ID,因此水王出现一次,计数器从0加1,然后比较后一个ID,如果相同,意味着水王又出现一次,计数器就自加1:如果不同,意味着水王没有出现第二次,直接抵消,计数器就减1.当计数器为0,水王又是当前ID,依次循环. 二.代码 //2016/5/18 信1301-1 黄山成 20133048 寻找水贴王的ID #include<iostream> usin

“找出水王”分析报告

“找出水王”分析报告 一.题目要求 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 二.设计思路 1.水王的发帖数超过所有人的一半,这个是个重要信息. 2.这个就和开心消消乐一样,一对一对的把不同的id消去,剩下的一定就是水王的id. 3.因为水王的i

找“水王”

题目: 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半.如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 思路: 题目中提到水王的发帖数超过总数的一半,针对这一条件我们可以把第一个id赋值给一个变量利用循环使下一个id与之比较,相等令一个值(提前设好)+1不等-1,每次循环开始判断该值是否为0,为0则令

水王继续

一.题目要求 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 二.设计思路 三个人的发帖数量都超过了四分之一,所以四个一组,都不一样的消去,最后剩下的就是那三个了. 三.设计代码 1 #include<iostream.h> 2 int main() 3 { 4 int ID[10]={1,2,3,4,4,3,2,2,3,4}; 5 int ID_NULL;//定义一个不存在的ID 6 int s