课堂练习(水王扩展)

设计思想:

跟上次实验类似,也是利用相消的思想,不同的是这次是先确定三个ID,他们之间不进行相消,最后剩下的三个ID即为三个小水王;

代码:

package text;
import java.util.Scanner;
public class text_y {
    public static void main(String[] args){
         Scanner in=new Scanner(System.in);
         int N;
         System.out.println("请输入帖子的总数:");
         N=in.nextInt();
         String list[]=new String[N];
         int i;
         System.out.println("请输入ID:");
         for(i=0;i<N;i++)
         {
             list[i]=in.next();
         }
         int j[]=new int[3];//利用J为每个水王的便利进行标记
         j[0]=j[1]=j[2]=0;
         String ID[]=new String[3];//设定单个水王ID
         for(i=0;i<N-1;i++)
         {
             if(j[0]==0)//当计数器为0时,重新赋予水王ID
             {
                 j[0]++;
                 ID[0]=list[i];
             }
             else if(j[1]==0)
             {
                 j[1]++;
                 ID[1]=list[i];
             }
             else if(j[2]==0)
             {
                 j[2]++;
                 ID[2]=list[i];
             }
             
             else if(list[i].equals(ID[0]))//相同ID时计数器增加
             {
                 j[0]++;
             }
             else if(list[i].equals(ID[1]))
             {
                 j[1]++;
             }
             else if(list[i].equals(ID[2]))
             {
                 j[2]++;
             }
             
             else//不同ID时因两两相消计数器减小
             {
                 j[0]--;
                 j[1]--;
                 j[2]--;
             }
         }
         System.out.println("三个水王分别是是:"+ID[0]+"   "+ID[1]+"   "+ID[2]);
         in.close();
      }
}

结果截图:

个人总结:

因为设计思想跟上次类似,所以理好思路后还是很好做的。

原文地址:https://www.cnblogs.com/dawn-sky/p/5535423.html