寻找水王2

1》题目要求:
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,
有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
 
2》设计思路:
因为这次是每个人的数量都超过了1/4,所以每次消去四个不同的数,最后剩下的就是三个水王。
 
3》源代码:
import java.util.*;
public class Findwater1 {
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入ID的个数:");
        int a=sc.nextInt();
        int ID[]=new int[a];
        System.out.println("请输入ID");
        for(int i=0;i<a;i++)
        {
            ID[i]=sc.nextInt();
        }
        
        int idnull = -1;//定义一个不出在的ID
        int c[]=new int[3];//定义比较的数组
        int water[]=new int[3];//定义水王的数组
        
        water[0]=water[1]=water[2]=0;
        c[0]=c[1]=c[2]=idnull;
        
        for(int i=0;i<a;i++)
        {
            if(ID[i]==c[0])
            {
                water[0]++;
            }
            else if(ID[i]==c[1])
            {
                water[1]++;
            }
            else if(ID[i]==c[2])
            {
                water[2]++;
            }
            else if(water[0]==0)
            {
                water[0]=1;
                c[0]=ID[i];
            }
            else if(water[1]==0)
            {
                water[1]=1;
                c[1]=ID[i];
            }
            else if(water[2]==0)
            {
                water[2]=1;
                c[2]=ID[i];
            }
            else
            {
                water[0]--;
                water[1]--;
                water[2]--;
            }
        }
        
        System.out.println("三个水王分别是:");
        System.out.println(c[0]);
        System.out.println(c[1]);
        System.out.println(c[2]);
    }
}

4》实验结果截图:

5》实验总结:

要学会对以前的知识举一反三,来解决不同的问题。

 

posted on 2016-05-24 17:42  那年夏天123  阅读(140)  评论(0编辑  收藏  举报

导航