zoukankan      html  css  js  c++  java
  • 软件工程练习——找水王2

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

        设计思想:这次的水王有三个,所以我选择用排除法一个个进行排除,假设第一个ID是水王,用它与之后的其他ID进行比较,对出现的次数进行统计,最后将这个ID全部拿出来,放入另一个数组中(出栈入栈的思想)。然后循环这个过程,直到全部水王找出。

    package shuiwang2;
    import java.util.*;
    
    public class Find_shuiwang {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Find_function function = new Find_function();
            Scanner sca1=new Scanner(System.in);
            Scanner sca2=new Scanner(System.in);
            System.out.println("输入帖子数:");
            int n=sca1.nextInt();
            String post[]=new String[n];
            
            int i;
            System.out.println("输入帖子ID:");
            for(i=0;i<n;i++)
            {
                  post[i]=sca2.nextLine();
            }
            String shuiwang[] = function.find(post, n);
            System.out.println("水王ID是:");
            for(i=0;i<3;i++)
            {
                System.out.println(shuiwang[i]+" ");
            }
            
        }
    
    }
    Find_shuiwang
    package shuiwang2;
    
    public class Find_function {
        String[] find(String[] post,int n)
        {
            int i,j = 0;
            int num_find=0;//找到几个相同的ID
            int num_mark=0;//标记有几个ID入栈
            int num_shuiwang=0;        
            String shuiwang[]= new String[3];
            String zhan[]=new String[n+1];//建一个栈放ID
                    
            while(num_shuiwang<3){//当水王没找全之前一直循环
                shuiwang[num_shuiwang]=post[0];//令第一个ID为水王
                for(i=0;i<n-num_mark;i++)//两两对比
                {            
                    if(shuiwang[num_shuiwang].equals(post[i]))
                        {
                            zhan[num_mark]=post[i];
                            num_find+=1;
                            
                            for(j=i;j<n-num_mark-1;j++)//前移数组
                            {
                                post[j]=post[j+1];
                            }
                            num_mark+=1;
                        }            
                }
                if(num_find >= n/4)
                {
                    num_shuiwang+=1;
                    num_find = 0;
                }
                else
                {
                    num_find = 0;
                }
            }
            return shuiwang;
        }
    }
    Find_function

        结果截图:

  • 相关阅读:
    四种PHP异步执行的常用方式
    PHP 多进程和多线程的优缺点
    试着用workerman开发一个在线聊天应用
    Python代码报错看不懂?记住这20个报错提示单词轻松解决bug
    PHP面试题大全(值得收藏)
    常见排序算法(三)
    常见排序算法(二)
    常见排序算法(一)
    NumPy 学习笔记(四)
    JavaScript 事件
  • 原文地址:https://www.cnblogs.com/xiaosongbiog/p/5535792.html
Copyright © 2011-2022 走看看