设计思想:
由”该“水王”发帖数目超过了帖子数目的一半”可以知道当用相邻两个ID不同时则消去的方法实现时,水龙王ID一定不会被全部消掉,也就是水龙王总数不会减为0;用数组longID[]记录所有ID,将第一个假设为龙王,与第二个ID比较,若相同,龙王ID总数加一,否则减一;直到减为0,则更换龙王ID,一直循环,直到结束。
代码实现:
import java.util.Scanner;
public class Longwang {
public static void main(String []args){
Scanner reader=new Scanner(System.in);
System.out.println("请输入ID总数:");
int sum=reader.nextInt();
int ID[]=new int[sum]; //数组ID[]存储所有ID
System.out.println("请输入ID:");
for(int i=0;i<sum;i++)
{
ID[i]=reader.nextInt();
}
int longID=ID[0];int j=1; //假设第一个ID为水龙王ID j为记录龙王ID总数
for(int i=1;i<sum;i++)
{
if(longID!=ID[i]) //龙王ID与后一个ID相比较,如不等则龙王ID总数减一
{
j=j-1;
if(j<=0) //龙王ID总数为0时,更换龙王ID,,并与后一个ID相比较
{
longID=ID[i+1];
j=1;
i++;
}
}
else //龙王ID与下一个ID相等时 龙王ID总数加一
{
longID=ID[i];
j=j+1;
}
}
System.out.println("水龙王的ID为:"+longID);
}
}
实现截图:
个人总结:
在编程前要尽量寻找简便的方法,先想好逻辑结构,再编程实现。