标签:
一、题目:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
二、实验思路:
该“水王”法非数目超过帖子数目的一半,所以,当帖子数目为单数或双数时,“水王”发帖数减去其他帖数至少为1或2。进一步可理解为当把“水王”的帖子与其他不同的帖子一一消去后,最终至少剩下“水王”的1或2张帖。又因为当都不是“水王”的不同帖子一一相消后,只会使“水王”的帖子剩下的更多,所以最终可总结为,只要把不同的帖子一一消去,最终肯定剩下“水王”帖子。
三、实验代码:
#include<iostream> using namespace std; void main() { int array[1000]; int num,he,id; cout<<"请输入ID的个数"; cin>>num; cout<<"请输入ID序列"; for(int i=0;i<num;i++) { cin>>array[i]; } he=0; id=array[0]; for(int i=0;i<num-1;i++) { if(id==array[i+1]) { he+=1; } else { he-=1; } if(he==-1) { i+=1; he=0; id=array[i+1]; } } cout<<"水王的ID是:"<<id<<endl; }
四、截图:
标签:
原文地址:http://www.cnblogs.com/itlangguojie/p/4539154.html