zoukankan      html  css  js  c++  java
  • 课堂练习之《三个水王》

    实验题目

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

    实验思路

       跟上一次一样,只不过是计数器由一个变为了三个,定义数组表示它们,由于据统计他们的发帖数量超过了1/4,可将每个水桶ID都与其它水军ID进行抵消最后剩下的就是三个水王,将前三个不同水军ID置为水桶ID,开始抵消计数,“水王”中抵消后数量剩余为0的即被淘汰,用一个最新的水军ID继续进行抵消,最后剩下的即为水桶ID。

    代码实现

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     //首先假定用户的ID列表为一个数组
     7     int Id[30]={1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,1,2,3};
     8     int ShuiW=Id[0];   //默认水王为第一个Id
     9     int length=30;
    10     int Idnum[3]={0,0,0};
    11     int ID[3]={0,0,0};   
    12     cout <<"水王ID列表为"<<endl;
    13     for(int i=0;i<length;i++)    //输出ID列表
    14     {
    15         cout<<Id[i]<<" ";
    16     }
    17     cout<<endl;
    18     for(int i=0;i<length;i++)
    19     {
    20         if(Idnum[0]==0 && Id[i]!=ID[1] && Id[i]!=ID[2])  //第一个水王
    21         {
    22             Idnum[0]=1;
    23             ID[0]=Id[i];
    24         }
    25         else if(Idnum[1]==0 && Id[i]!=ID[0] && Id[i]!=ID[2])   //第二个水王
    26         {
    27             Idnum[1]=1;
    28             ID[1]=Id[i];
    29         }
    30         else if(Idnum[2]==0 && Id[i]!=ID[0] && Id[i]!=ID[1])
    31         {
    32             Idnum[2]=1;
    33             ID[2]=Id[i];
    34         }
    35         else if(Id[i]!=ID[0] && Id[i]!=ID[1] && Id[i]!=ID[2])   //相互抵消,最后抵消为零淘汰,更换新的ID作为水王
    36         {
    37             Idnum[0]--;
    38             Idnum[1]--;
    39             Idnum[2]--;
    40         }
    41         else if(Id[i]==ID[0])
    42         {
    43             Idnum[0]++;
    44         }
    45         else if(Id[i]==ID[1])
    46         {
    47             Idnum[1]++;
    48         }
    49         else if(Id[i]==ID[2])
    50         {
    51             Idnum[2]++;
    52         }       
    53     }
    54     cout<<"第一个水王的ID是:"<<ID[0]<<endl;
    55     cout<<"第二个水王的ID是:"<<ID[1]<<endl;
    56     cout<<"第三个水王的ID是:"<<ID[2]<<endl;
    57     return 0;
    58 }

    运行截图

  • 相关阅读:
    新手ui设计师必备——切图规范
    django1.4日志模块配置及使用
    linux chmod命令和chown命令
    python log
    python curses使用
    css3中变形与动画(三)
    django静态文件配置
    centos7 apache httpd安装和配置django项目
    apache httpd服务器403 forbidden的问题
    centos7 mysql数据库安装和配置
  • 原文地址:https://www.cnblogs.com/cnyulei/p/5538962.html
Copyright © 2011-2022 走看看