找水王续
一、题目内容
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,
还会回复其他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(); } }
四、实验截图
五、实验总结
自己本来没有做出来,问的同学才做出来的,感觉自己的编程思维,还不那么灵活。