找水王(课堂练习)

一、题目

三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复

其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其

中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

二、程序设计思路

因为“水王”发帖数超过了一半,将相邻两两不同的ID消除,则剩下的为“水王”的ID。用一个一维数组userid[]存储所有ID,令“水王”ID为

数组中的第一个userid[0],用一个整型j记录水王ID出现次数,相邻数比较相同则j++,不同则j- -,并且如果j<=0,则对水王换ID,进行循

断,直至循环结束

三、源程序代码

package waterking;

import java.util.Scanner;

public class Shuiwang {
      //主函数输入数据并存储数据
      public static void main(String args[]) {
            @SuppressWarnings("resource")
             Scanner sc=new Scanner(System.in);
             System.out.println("请输入测试帖子数:");
             int n=sc.nextInt();//n为帖子数
             String userid[]=new String[n+1];
             int i;
             System.out.println("请依次输入"+n+"个帖子的ID:");
             for(i=0;i<n+1;i++)
             {
                   userid[i]=sc.nextLine();//nextline自动换行
             }
             String shuiwang = findshuiwang(userid, n);//调用函数
             System.out.println("该水王的ID是 " + shuiwang);
        }
    public static String findshuiwang(String[] userid,int n)//接受ID数组,接受用户输入的帖子数n
    {
             int i,count = 0;//此计数器最终值用来判断目前ID是否为水王
             String shuiwang = userid[0];//令第一个ID为水王
              for(i=0;i<n;i++)
              {            
                 if(!shuiwang.equals(userid[i]))//如果与前一个ID不同,那么当前ID的计数器减1
                     {
                         count=count-1;
                         if(count<=0)    //如果count=0时,说明目前这个ID和前一个ID暂时不是水王
                           {
                               shuiwang=userid[i+1];    //说明目前ID不是水王,令目前ID的下一个ID为水王
                               count=1;        //重新给计数器赋值为1或者0,这里我选择1
                             }
                     }
                 else
                     {
                         shuiwang=userid[i];//与前一个ID相同,说明当前ID暂时为水王
                         count=count+1;//计数器+1
                     }            
             }
             return shuiwang;//返回水王ID
         }
}

四、程序运行结果

 

猜你喜欢

转载自www.cnblogs.com/yang2000/p/12969469.html