找水王---2

在之前的基础上将前三个不同水军ID设为水王ID,开始抵消计数,“水王”中抵消后数量剩余为0的即被淘汰,用一个最新的水军ID继续进行抵消,最后剩下的即为水王ID。

源代码:

import java.util.Scanner;

public class shui {

    @SuppressWarnings("resource")
    public static void main(String[] args) {
        // TODO Auto-generated method stub
            int Num;//帖子数量

            int num[]={0,0,0};//计数

            int ID[]={0,0,0};//储存水王地址      

            System.out.println("请输入总帖子数量:");

            Scanner in=new Scanner(System.in); 

            Num=in.nextInt();

            char Id[]=new char[Num];//储存所有的id地址

            System.out.println("请输入水军的ID列表");

     

            for(int j=0;j<Num;j++)

            {

                Id[j]=(char) in.nextInt();

            }

            for(int i=0;i<Num;i++)

            {

                if(num[0]==0&&Id[i]!=ID[1]&&Id[i]!=ID[2])

                {

                    num[0]=1;

                    ID[0]=Id[i];

                }

                else if(num[1]==0 && Id[i]!=ID[0] && Id[i]!=ID[2])

                {

                    num[1]=1;

                    ID[1]=Id[i];

                }

                else if(num[2]==0 && Id[i]!=ID[0] && Id[i]!=ID[1])

                {

                    num[2]=1;

                    ID[2]=Id[i];

                }

                else if(Id[i]!=ID[0] && Id[i]!=ID[1] && Id[i]!=ID[2])

                {

                    num[0]--;

                    num[1]--;

                    num[2]--;

                }

                else if(Id[i]==ID[0])

                {

                    num[0]++;

                }

                else if(Id[i]==ID[1])

                {

                    num[1]++;

                }

                else if(Id[i]==ID[2])

                {

                    num[2]++;

                }       

            }

            System.out.println("三个水王ID为:"+ID[0]+" "+ID[1]+" "+ID[2]);
    }

}

运行截图:

总结:思路大体一样,同样是利用删除相同ID 进行解决问题,理清思路很重要。

原文地址:https://www.cnblogs.com/chenpengmeng/p/5535154.html