• 找水王2


    一:程序设计背景

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

     二:设计思想

        此问题跟找水王1类似,只不过从1:1的消除变成了3:1的消除,其他的count加法都类似。

    三:代码实现

    //寻找水王2
    //信1405-1班   20142966  黄伟鹏
    import java.util.Scanner;
    public class find2 
    {
        public static void main(String[] args) 
        {
            int i,Number;
            System.out.println("请输入帖子总数:");
            Scanner in=new Scanner(System.in);
            Number=in.nextInt();
            int list[]=new int[Number];    //定义一个长度为帖子长度的数组
            int count[]=new int[3];    //定义一个分别对三个水王重复值进行计数的数组
            int middle[]=new int[3];    //定义一个分别对三个水王进行赋值的中间数组
            System.out.println("请输入帖子的ID");
            Scanner t=new Scanner(System.in);
            for(i=0;i<Number;i++)     //将帖子ID赋值给数组
            {
                list[i]=t.nextInt();
            }
            for(i=0;i<3;i++)    //将计数数组初始化
            {
                count[i]=0;
            }
            for(i=0;i<Number;i++)
            {
                if(middle[0]==list[i])
                {
                    count[0]++;
                }
                else if(middle[1]==list[i])
                {
                    count[1]++;
                }
                else if(middle[2]==list[i])
                {
                    count[2]++;
                }
                else if(count[0]==0)
                {
                    count[0]++;
                    middle[0]=list[i];
                }
                else if(count[1]==0)
                {
                    count[1]++;
                    middle[1]=list[i];
                }
                else if(count[2]==0)
                {
                    count[2]++;
                    middle[2]=list[i];
                }
                else
                {
                    count[0]--;
                    count[1]--;
                    count[2]--;
                }
            }
            System.out.println("第一个水王的ID是 :     "+middle[0]);    
            System.out.println("第二个水王的ID是 :     "+middle[1]);    
            System.out.println("第三个水王的ID是 :     "+middle[2]);    
        }
    
    }

    四:实现截图

                                                         

    五:个人总结

       此题有数种方法可以实现,但题中要求快速找到即算法简便,只要将帖子数最多的ID找到即可。

  • 相关阅读:
    从0开始学习C#第三天
    金盾视频加密器V2014视频加密原理分析
    从0开始学习C#第二天
    从0开始学习C#第一天
    hook NtTerminateProcess进行应用的保护
    Wireshark简单使用教程3——附视频
    Wireshark简单使用教程2——附视频
    Wireshark简单使用教程1——附视频
    一个bat病毒分析(part1)
    社团的CTF逆向题WriteUp
  • 原文地址:https://www.cnblogs.com/xiaoabu/p/5534728.html
Copyright © 2020-2023  润新知