寻找水龙王

设计思想:

      由”该“水王”发帖数目超过了帖子数目的一半”可以知道当用相邻两个ID不同时则消去的方法实现时,水龙王ID一定不会被全部消掉,也就是水龙王总数不会减为0;用数组longID[]记录所有ID,将第一个假设为龙王,与第二个ID比较,若相同,龙王ID总数加一,否则减一;直到减为0,则更换龙王ID,一直循环,直到结束。

代码实现:

    import java.util.Scanner;

public class Longwang {

    public static void main(String []args){

       Scanner reader=new Scanner(System.in);

       System.out.println("请输入ID总数:");

       int sum=reader.nextInt();

       int ID[]=new int[sum];     //数组ID[]存储所有ID

       System.out.println("请输入ID:");

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

       {

          ID[i]=reader.nextInt();

       }

       int longID=ID[0];int j=1;  //假设第一个ID为水龙王ID j为记录龙王ID总数

       for(int i=1;i<sum;i++)  

       {

          if(longID!=ID[i])  //龙王ID与后一个ID相比较,如不等则龙王ID总数减一

          {

             j=j-1;

             if(j<=0)   //龙王ID总数为0时,更换龙王ID,,并与后一个ID相比较

             {

                longID=ID[i+1];

                j=1;

                i++;

             }

          }

          else     //龙王ID与下一个ID相等时 龙王ID总数加一

          {

             longID=ID[i];

             j=j+1;

          }

       }

       System.out.println("水龙王的ID为:"+longID);

    }

}

 

实现截图:

   

个人总结:

    在编程前要尽量寻找简便的方法,先想好逻辑结构,再编程实现。

原文地址:https://www.cnblogs.com/jinpeigang/p/5502283.html