1》题目要求:
随着论坛的发展,管理员发现水王没有了,但是统计结果表明,
有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?
2》设计思路:
因为这次是每个人的数量都超过了1/4,所以每次消去四个不同的数,最后剩下的就是三个水王。
3》源代码:
import java.util.*; public class Findwater1 { public static void main(String args[]) { Scanner sc=new Scanner(System.in); System.out.println("请输入ID的个数:"); int a=sc.nextInt(); int ID[]=new int[a]; System.out.println("请输入ID"); for(int i=0;i<a;i++) { ID[i]=sc.nextInt(); } int idnull = -1;//定义一个不出在的ID int c[]=new int[3];//定义比较的数组 int water[]=new int[3];//定义水王的数组 water[0]=water[1]=water[2]=0; c[0]=c[1]=c[2]=idnull; for(int i=0;i<a;i++) { if(ID[i]==c[0]) { water[0]++; } else if(ID[i]==c[1]) { water[1]++; } else if(ID[i]==c[2]) { water[2]++; } else if(water[0]==0) { water[0]=1; c[0]=ID[i]; } else if(water[1]==0) { water[1]=1; c[1]=ID[i]; } else if(water[2]==0) { water[2]=1; c[2]=ID[i]; } else { water[0]--; water[1]--; water[2]--; } } System.out.println("三个水王分别是:"); System.out.println(c[0]); System.out.println(c[1]); System.out.println(c[2]); } }
4》实验结果截图:
5》实验总结:
要学会对以前的知识举一反三,来解决不同的问题。