• 找水王(课堂练习)


    一、题目

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

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

    四、程序运行结果

     

  • 相关阅读:
    生成随机串码并保存到Excel中
    制作100份word表
    抓取网页图片-以本地IIS网页为实践对象
    使用xlsxwriter 创建图表chart
    照片查看器2.0
    编程注意事项-记踩过的坑
    STC12C5A60S2的定时器模式16位的时候没有自动重载功能
    Keil C51 一个警告 '=': pointer: different mspace
    RT-Thread 使用笔记二
    Keil-C51读取ROM数据
  • 原文地址:https://www.cnblogs.com/yang2000/p/12969469.html
Copyright © 2020-2023  润新知