设计思想:
与上次的实验思路基本相同,假设每个NUM都有可能是水王,那么在遍历时这个水王就要被两两比较,相互抵消,可能自己的帖子数是会增加的,也可能是抵消的,帖子数要减少的, 只不过是这三个NUM同时与发帖NUM进行比较抵消,而且这三个NUM 是不会相互比较的。
源代码:
//求三个小水王
import java.util.Scanner;
public class test5 {
public static vonum main(String[] args){
Scanner in=new Scanner(System.in);
int N;
System.out.println("请输入帖子的总数:");
N=in.nextInt();
int list[]=new int [N];
int i;
System.out.println("请输入NUM:");
for(i=0;i<N;i++)
{
list[i]=in.nextInt();
}
int nNUM[]=new int [3];
nNUM[0]=nNUM[1]=nNUM[2]=0;
int NUM[]=new int [3];
NUM[0]=NUM[1]=NUM[2]=-1;
for(i=0;i<N;i++)
{
if(nNUM[0]==0)
{
nNUM[0]++;
NUM[0]=list[i];
}
else if(nNUM[1]==0)
{
nNUM[1]++;
NUM[1]=list[i];
}
else if(nNUM[2]==0)
{
nNUM[2]++;
NUM[2]=list[i];
}
else if(list[i]==NUM[0])
{
nNUM[0]++;
}
else if(list[i]==NUM[1])
{
nNUM[1]++;
}
else if(list[i]==NUM[2])
{
nNUM[2]++;
}
else
{
nNUM[0]--;
nNUM[1]--;
nNUM[2]--;
}
}
System.out.println("三个小水王分别是:"+NUM[0]+" "+NUM[1]+" "+NUM[2]);
in.close();
}
}