• 寻找水龙王2


    设计思想:

         既然三个水龙王每个的发帖数大于四分之一,那就四个帖子一组,假设前三个ID为水龙王,两个数组,一个记录三个水龙王ID,一个记录三个水龙王各自ID数目,将每个ID与假设龙王的ID相比较,如相同,则在相同的龙王ID总数加一,若与三个假设龙王都不相同,则假设的三个龙王各自总数减一,直到减为0,更换龙王ID。

    代码实现:    

    import java.util.Scanner;

    public class Longwang2 {

      public static void main(String []args){

         Scanner reader=new Scanner(System.in);

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

         int sumID=reader.nextInt();

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

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

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

         {

            ID[i]=reader.nextInt();

         }

         int LongWang[]=new int[3]; //数组LongWang[]储存三个龙王ID

         int countLong[]=new int[3];//数组countLong[]存储三个龙王ID各自总数

         countLong[0]=countLong[1]=countLong[2]=0;//初始化龙王ID各自总数为0

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

         {

            if(countLong[0]==0)  //假设前三个帖子ID是龙王

            {

                LongWang[0]=ID[i];

               countLong[0]++;

            }

            else if(countLong[1]==0)

            {

               LongWang[1]=ID[i];

               countLong[1]++;

            }

            else if(countLong[2]==0)

            {

               LongWang[2]=ID[i];

               countLong[2]++;

            }

            else if(ID[i]==LongWang[0]) //将帖子ID与龙王ID相比较,若相同,则龙王计数器加一

            {

               countLong[0]++;

            }

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

            {

               countLong[1]++;

            }

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

            {

               countLong[2]++;

            }

            else   //如果与三个龙王的ID都不同的话,则三个计数器都自减一

            {

               countLong[0]--;

               countLong[1]--;

               countLong[2]--;

            }

         }

         System.out.println("三个龙王ID分别是:");

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

         {

            System.out.print(LongWang[i]+" ");

         }

      }

    }

    实现截图:

     

    个人总结:

          编程要学会举一反三,有时类似的问题设计思想是不变的。

  • 相关阅读:
    C#_基础_继承以及关键字new(二十一)
    C#_基础_静态关键字static(二十一)
    C#_基础_密封类和密封方法关键字sealed(二十)
    C#_基础_多线程(十九)
    C#_基础_部分类partial(十八)
    C#_基础_文件夹操作类Directory(十七)
    C#_基础_简单实现自定义异常(十六)
    C#_基础_String和StringBuilder及字符串常用方法(十五)
    C#基础_递归方法几个示例(十四)
    C#_基础_关键字可变参数Param(十三)
  • 原文地址:https://www.cnblogs.com/jinpeigang/p/5520927.html
Copyright © 2020-2023  润新知