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

三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个水王他不但喜欢发帖,还会回复其他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;
 7     water=a[0];
 8     for(int i=1;i<10;i++)
 9     {
10         if(water!=a[i])
11         {
12             k=k-1;
13             if(k<0)
14             {
15                 water=a[i+1];
16                 k=1;
17                 i++;
18             }
19         }
20         else
21         {
22             water=a[i];
23             k=k+1;
24         }
25     }
26     cout<<"水王ID是:"<<water<<endl;
27     return 0;
28 }

截图:

时间: 2024-12-05 20:49:56

课堂练习------寻找水王的相关文章

软件工程课堂作业——寻找水王2

一.题目 随着论坛的发展,管理员发现“水王”没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了总和的1/4.你能从发帖列表中快速找到他们吗? 二.设计思想 根据三个水王号的ID数均超过四分之一可以知道只要非水王号出现一次,水王号ID必定都对应会出现一次.则目前判断为水王号的ID出现则对应次数加一,非水王号出现一次则目前判断为水王号出现次数的均减一.运用这种算法则需要判断输入的ID号是否符合条件,通过判断最终判断出来的ID号的出现的次数之差可以判断出是否满足“发帖数量超过了

软件工程课堂作业——寻找“水王”

一.题目 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 二.设计思想: 由于该“水王”发帖数目超过了帖子数目的一半,可以通过相邻两个帖子的作者ID是否相同来寻找.如果相邻两个ID不同,则将两个ID略过:若相等,则判断之前是否有怀疑是“水王”的ID,如

课堂练习——寻找水王

一,题目 •三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 二,思路 思路1:因为各个人的id号大小不同,因此可将所有人的id号按照从小到大的顺序进行排序,用快速排序法,时间复杂度为:O(N*logN).然后遍历整个数组,统计每个id号出现的次数,出

课堂作业-寻找水王

[设计思想]   因为水王是整个论坛中发帖和回帖数加起来最多的的人,且超过总帖数的一半以上.(这里将发帖数和回帖数记在一起)使用"两两相消"的方法.将帖子的作者id纳入数组,将数组中的一个数记作疑似水王者,并记发帖数t=0.遍历数组,若数组中的数和疑似水王者id相同,使发帖数t加一.如与疑似水王者id不同,使发帖数t减一.当t=0时,将数组中当前与水王疑似者比较的数作为新的疑似水王者.循环结束,当前水王怀疑者就是水王. [代码实现] 1 2 3 4 5 6 7 8 9 10 11 12

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

一.题目 •三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? •随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 二.设计思想 三.代码截图 四.总结

课堂作业值之寻找水王2

随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗 设计 思想: 与上次寻找水王一样,这次将与三个水王不同的ID都消除掉,剩下的就是三个水王的ID 程序源代码: import java.util.Scanner;public class shuiwang2 { public static void main(String args[]) { Scanner scanner=new Scanner(Syst

课堂练习——寻找水霸

一,题目:随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 二,思路:(1)将所有的ID号从小到大进行排序,然后分别统计各个ID号的个数,找出其中出现次数超过1/4的ID号,即为所求,但时间复杂度过于复杂. (2)在思路一排序的基础上,三个水霸的ID号分别在1/4,1/2,3/4处. (3)在上一堂课寻找水王的基础上,寻找水霸即为消去连续的4个不同的ID. 三,程序: #include <iostre

寻找水王

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

寻找水王续

一.题目要求 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4, 你能从发帖列表中快速找到他们吗? 二.设计思路 这次是求3个ID,而且他们发帖数各超过了总数的四分之一,所以再次用上次寻找水王实验的思想,消除不同ID号,只不 过得设置3个标记,复杂一点,可用数组表示. 三.代码 #include<iostream.h> void ID_array(int l,int A[]) { cout<<"请输入ID序列: