水王2

1.题目:

三人行设计了一个灌水论坛。随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

2.设计思路:

上一次是运用消消乐的逆向思想消去相邻的两个不同id,这次是寻找三个小水王,它们的id数都超过了总数的四分之一,这次就上次改进一下,把相邻id个数提高一下就可以得出结果。

3.源代码:

 1 #include<iostream.h>
 2 #include "stdlib.h"
 3 int main()
 4 {
 5     int length;
 6     int Idnum[3]={0,0,0};
 7     int ID[3]={0,0,0};
 8     cout<<"请输入总帖子数量:"<<endl;
 9     cin>>length;
10     int * curId=new int [length];
11      cout<<"请输入水军的ID列表"<<endl;
12     for(int j=0;j<length;j++)
13     {
14         cin>>curId[j];
15     }
16     for(int i=0;i<length;i++)
17     {
18         if(Idnum[0]==0 && curId[i]!=ID[1] && curId[i]!=ID[2])
19         {
20             Idnum[0]=1;
21             ID[0]=curId[i];
22         }
23         else if(Idnum[1]==0 && curId[i]!=ID[0] && curId[i]!=ID[2])
24         {
25             Idnum[1]=1;
26             ID[1]=curId[i];
27         }
28         else if(Idnum[2]==0 && curId[i]!=ID[0] && curId[i]!=ID[1])
29         {
30             Idnum[2]=1;
31             ID[2]=curId[i];
32         }
33         else if(curId[i]!=ID[0] && curId[i]!=ID[1] && curId[i]!=ID[2])
34         {
35             Idnum[0]--;
36             Idnum[1]--;
37             Idnum[2]--;
38         }
39         else if(curId[i]==ID[0])
40         {
41             Idnum[0]++;
42         }
43         else if(curId[i]==ID[1])
44         {
45             Idnum[1]++;
46         }
47         else if(curId[i]==ID[2])
48         {
49             Idnum[2]++;
50         }
51     }
52     cout<<"三个水桶ID为:"<<ID[0]<<" "<<ID[1]<<" "<<ID[2]<<endl;
53     return 0;
54 }

4.实验结果截图:

5.心得体会:

做了这么多次课堂小程序练习的延伸,每一次都是在第一个程序实现的基础上做改进就可以轻松搞定,相信这种思想在以后的程序编写中会发挥很大的作用吧。

时间: 2024-10-11 06:18:54

水王2的相关文章

水王(课堂作业)

题目: 三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个"水王",他不但喜欢发帖,还会回复其他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