设计思想:
输入id总数,输入id;假设第一个id是水王,若水王id与下一个id不同,则消除不同的,设j等于0减一;若id相同,则j加一;最后剩下的id 为水王。
源代码:
//求论坛上的水王 import java.util.Scanner; public class test4 { public static void main(String[] args){ Scanner in=new Scanner(System.in); int N; System.out.println("请输入帖子的总数:"); N=in.nextInt(); String list[]=new String [N]; int i,j=0; System.out.println("请输入ID:"); for(i=0;i<N;i++) { list[i]=in.next(); } String king=list[0]; //设水王是第一个ID for(i=0;i<N-1;i++) { //增加相同的,消除不同的,最后剩下的是水王 if(king.equals(list[i+1])) { j++; } else j--; if(j<0) { king=list[i+1]; } } System.out.println("水王是:"+king); in.close(); } }
截图:
个人总结:
这次的课堂练习其实并不困难,主要是我们要理清思路,用排序算和也是可以的,但是太过于繁琐;两两消除法可以更简单地算出结果。