zoukankan      html  css  js  c++  java
  • 找水王(课堂练习)

    一、题目

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

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

    四、程序运行结果

     

  • 相关阅读:
    【原创】VNC-view配置
    【LVM】LVM自动扩容脚本
    【linux磁盘分区--格式化】fdisk,parted,mkfs.ext3
    【原】Centos 7 下创建LVM流程
    【Spring-AOP-学习笔记-7】@Around增强处理简单示例
    【转】libvirt kvm 虚拟机上网 – Bridge桥接
    【phantomjs】使用phantomjs生成highChart的图片(待完善)
    【Redis】使用Redis Sentinel实现Redis HA
    【Redis】配置redis主从复制
    【转载】优秀博文转载
  • 原文地址:https://www.cnblogs.com/yang2000/p/12969469.html
Copyright © 2011-2022 走看看