• 找水王续


    一、题目内容

    三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,

    还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,

    其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    二、设计思路在上个基础上,在扩展为3个,就添加三个怀疑目标,进行遍历

    三、实验代码

    package com.minirisoft;
    import java.util.Scanner;
    public class ShukKeSan {
    	public static void FindWater(int[] ID, int len,int[] water)
    	{
            int[] counter=new int[3];                    //计数器
            counter[0]=counter[1]=counter[2]=0;
            water[0]=water[1]=water[2]=-1;    //初始化嫌疑人列表
            for(int i=0;i<len;i++)
            {
               if(counter[0]==0)            //先赋值
               {
                  counter[0]++;
                  water[0]=ID[i];
               }
               else if(counter[1]==0)
                {
                   counter[1]++;
                   water[1]=ID[i];
                }
               else if(counter[2]==0)
                {
                  counter[2]++;
                  water[2]=ID[i];
                }
               else if(ID[i]==water[0])    //如果counter为0,重新赋值
                {
                  counter[0]++;
                }
               else if(ID[i]==water[1])
                {
                  counter[1]++;
                }
               else if(ID[i]==water[2])
                {
                  counter[2]++;
                }
               else                        //如果与三个嫌疑人的ID都不同的话,则三个计数器都自减一,直到counter为0
                {
                  counter[0]--;
                  counter[1]--;
                  counter[2]--;
                }
            }
         }
       public static void main(String[] args)
       {
    	  int[] ID=new int[100];       //发帖记录表
    	  int[] WaterKing=new int[3]; //发帖数目、水桶
    	  Scanner input=new Scanner(System.in);
    	  System.out.println("请输入帖子的数量:");
    	  int num=input.nextInt();
    	  System.out.println("请输入发帖ID:");
    	  for(int i=0;i<num;i++)
    	  {
    	     ID[i]=input.nextInt();
    	  }
    	  FindWater(ID,num,WaterKing);
    	  System.out.println("水桶是:");
    	  for(int i=0;i<3;i++)
    	  {
    		  System.out.println(WaterKing[i]+"");
    	  }
    	  System.out.println();
       }
    }
    

     四、实验截图

    五、实验总结

    自己本来没有做出来,问的同学才做出来的,感觉自己的编程思维,还不那么灵活。

  • 相关阅读:
    【BZOJ 3309】DZY Loves Math
    【51Nod 1239】欧拉函数之和
    【51Nod 1244】莫比乌斯函数之和
    莫比乌斯反演与杜教筛
    【BZOJ 3993】【SDOI 2015】星际战争
    【BZOJ 3876】【AHOI 2014】支线剧情
    【hihoCoder 1454】【hiho挑战赛25】【坑】Rikka with Tree II
    【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募
    【BZOJ 1016】【JSOI 2008】最小生成树计数
    【BZOJ 1005】【HNOI 2008】明明的烦恼
  • 原文地址:https://www.cnblogs.com/tianyaguying/p/4474284.html
Copyright © 2020-2023  润新知