• 找水王(课堂练习)


    一、题目

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

    其他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
             }
    }

    四、程序运行结果

     

  • 相关阅读:
    Backbone Events 源码笔记
    IIS8集成模式下打开静态资源被aspx处理程序处理,StaticFileModule失效问题分析
    Orchard 与 ABP架构比较 (aspnetboilerplate)
    Orchard EventBus 事件总线及 IEventHandler作用
    Orchard 事件通知小坑
    推荐一个国内编程语言排名网站
    po_文件格式[转]
    关于poedit打开po文件乱码的问题
    JAVA和.NET工作流相关项目收集
    php里的二进制安全
  • 原文地址:https://www.cnblogs.com/yang2000/p/12969469.html
Copyright © 2020-2023  润新知