1、实验题目
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
2、实验思路
我觉得这个题听考验我们解题的思路,刚开始只有一个打水王时还稍微简单一点,就是两个两个比较,相同则保留,不同则删除;这一次三个小水王的问题,一开始一点思路也没有,后来在查询了好多资料后,发现其实可以用同样的方法去解决这个问题,上一次是两个比较,这一个应定义三个标记,分别标记三个小水王,然后记录它们的累积次数,然后遍历整个列表,每处理一个ID,若与已标记的小水王中的某一个相同,则次数加一,若与三个都不同,则说明找到了四个互不相同的ID,将三个减一,也就相当于“删除了四个不同ID”,若某一个次数等于0,则重新开始寻找。
3、实验代码
1 #include2 using namespace std; 3 4 int main() 5 { 6 int length,i,id; 7 int shuiwang [3]={ 0}; 8 int count[3] ={ 0}; //标记三个小水王 9 int ID[10000];10 int water[10000];11 cout << "请输入帖子的总个数:";//定义帖子的长度,即数组的个数12 cin >> length;13 cout << "请依次输入每个帖子的发布者的ID:" << endl;//输入每个帖子的Id14 for (i = 0; i < length; i++)15 {16 cin >> id;17 ID[i] = id;18 }19 for(int i=0;i
4、实验截图
5、时间记录日志(单位:h):
日期 | 开始时间 | 结束时间 | 中断时间(min) | 净时间(min) | 活动 | 备注 |
星期一 | 14:00 | 15:50 | 10(课间) | 100 | 听课 | 软件工程 |
星期二 | 20:00 | 22:00 | 0 | 120 | 编程 | 水王2 |
星期三 | 15:00 | 17:00 | 10(休息) | 120 | 看书 | 人月神话 |
星期四 | 14:00 | 15:50 | 10(课间) | 100 | 上机 | 水王2 |
20:00 | 21:30 | 10(休息) | 80 | 编程 | 水王2 | |
星期五 | 18:30 | 19:10 | 10(休息) | 30 | 发博客 | 水王2 |