课堂练习-找水王

Posted on 2016-05-20 17:13  Young丶  阅读(160)  评论(0编辑  收藏  举报

一、实验题目:

      三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

二、解决思路

      使用老师上课时的思路,从头遍历所有ID,相同ID留下,不同ID消除,这样最后剩下的ID就只剩水王的。

三、代码

 1 //找水王
 2 
 3 import java.util.Scanner;
 4 public class KT_516 {
 5 
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         Scanner in =new Scanner(System.in);
 9         
10         System.out.println("请输入ID个数:");
11         int a=in.nextInt();
12         int b[]=new int[a];
13         System.out.println("请输入ID:");
14         for(int i=0;i<a;i++)
15         {
16             b[i]=in.nextInt();
17         }
18           
19         int waterking=b[0];
20         int k=1;
21         for(int i=1;i<a;i++)
22         {
23             if(waterking!=b[i])//判断前后两个ID是否相同
24             {
25                 k=k-1;
26                 if(k<=0)
27                 {
28                     waterking=b[i+1];
29                     k=1;
30                     i++;               //不同,消除后,i直接跳转后一个
31                 }
32             }
33             else
34             {
35                 waterking=b[i];        //相同后,两个数字并为一个,继续比较
36                 k=k+1;            
37             }
38         }
39           
40         System.out.println("水王为"+waterking);
41 
42     }
43 
44 }

 

四、截图