• 寻找小水王


     1 #include<iostream>
     2 using namespace std;
     3  
     4 void Waterking_find(int ID[],int num)                 
     5 {
     6     int waterking[3]={0,0,0};
     7     int count[3]={0,0,0};
     8     for(int i=0;i<num;i++)
     9     {
    10         if(count[0]==0&&ID[i]!=waterking[1]&&ID[i]!=waterking[2])
    11         {
    12             waterking[0]=ID[i];
    13             count[0]++;
    14         }
    15         if(count[1]==0&&ID[i]!=waterking[0]&&ID[i]!=waterking[2])
    16         {
    17             waterking[1]=ID[i];
    18             count[1]++;
    19         }
    20         if(count[2]==0&&ID[i]!=waterking[0]&&ID[i]!=waterking[1])
    21         {
    22             waterking[2]=ID[i];
    23             count[2]++;
    24         }
    25         if(ID[i]==waterking[0])
    26         {
    27             count[0]++;
    28         }
    29         if(ID[i]==waterking[1])
    30         {
    31             count[1]++;
    32         }
    33         if(ID[i]==waterking[2])
    34         {
    35             count[2]++;
    36         }
    37         if(ID[i]!=waterking[0]&&ID[i]!=waterking[1]&&ID[i]!=waterking[1])
    38         {
    39             count[0]--;
    40             count[1]--;
    41             count[2]--;
    42         }
    43 
    44     }
    45     cout<<"这三个水王分别是:"<<waterking[0]<<" "<<waterking[1]<<" "<<waterking[2]<<endl;
    46 }
    47 int main()
    48 { 
    49     int Num;
    50     int ID[14];
    51     cout<<"请输入发帖子的数量:"<<endl;
    52     cin>>Num;
    53     cout<<"输入发送每个帖子的ID:"<<endl;
    54     for(int i=0;i<Num;i++)
    55     {
    56         cin>>ID[i];
    57     }
    58     Waterking_find(ID,Num);
    59     return 0;
    60 }

    一、题目

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

    二、实验思路:

        1、定义waterking[]来指定水王,count[]数组用来对三个水王的个数进行计数。

        2、给出所有的ID数,先找出前三个不同的数本别设定为三个不同的小水王

     3、继续向后遍历其他的数,若遇到其中的一个水王,则那个水王的count[i]+1,若遇到与三个水王都不同的数,三个水王的count[]—1,若其中的某个水王的count[]减为0时,将遍历到的数设置为新的水王,遍历到最后,找到三个小水王。

    三、实验截图

    四、实验总结:

    我感觉这次实验和和上一次的思路基本相同,只是增加了水王的个数,但是我们就觉得难了很多,一开始就没有想出来。我觉得有些题目的思路是相通的,我们要耐心研读,找出解题的入口。

  • 相关阅读:
    Linux常用命令
    IBM Java多线程 1. 线程基础
    IBM Java多线程 6.其它线程 API 详细信息
    Jakarta Commons Logging学习笔记
    Linux 下存放ssh信息的文件位置
    ArrayList的使用方法
    JAVA基础--JAVA中的反射机制详解
    使用 Bash shell脚本进行功能测试
    log4j详细解
    Eclipse Template用法探讨
  • 原文地址:https://www.cnblogs.com/luxin123/p/5534449.html
Copyright © 2020-2023  润新知