一、题目要求
现有一个灌水论坛,信息学院的学生都喜欢在上面交流灌水。传说在论坛上有一个“水王”,它不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目已超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”。
二、设计思路
设计思路还没想明白。。只能看一下同学的思路了。。
程序的设计思路大体就是,首先设2个变量,将第一个数暂时给shuiwang这个变量并且和下一个数比较,如果相同则用一个X变量自加一,不同则减一;如此循环,如果遇到不同时,一直减减减,x变为0,shuiwang又被新的数覆盖,以此类推,找到最终的水王ID。
三、源代码
1 #include<iostream.h> 2 3 int findshuiwang(int arrID[],int num) 4 { 5 int shuiwang; 6 int x; 7 for(int i=x=0;i<num;i++) 8 { 9 if(x==0) 10 { 11 shuiwang=arrID[i],x=1; 12 } 13 else 14 { 15 if(shuiwang==arrID[i]) 16 { 17 ++x; 18 } 19 else 20 { 21 --x; 22 } 23 } 24 } 25 cout<<("这个“水王”的ID就是:"); 26 cout<<("%d\n",shuiwang); 27 return shuiwang; 28 } 29 30 31 32 int main() 33 { 34 int arry[6]={222,333,333,333,444,444,}; 35 findshuiwang(arry,6); 36 return 0; 37 }
四、实验截图
五、实验总结:
这次的课堂训练还木有想明白。。但是因为睡过了。怕交不上作业,所以只能看了一下同学的思路,基本大致代码还是同学的,稍微优化了一下,感觉还行,真的按照老师说的这个思路代码好简单。。虽然还有一点没有想明白。
时间: 2024-10-12 12:51:02