• 软件工程练习——找水王


          三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

      如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    1.设计思想

       因为“水王”发帖数超过了一半,将相邻两两不同的ID消除,则剩下的为“水王”的ID。用一个一维数组a[]存储所有ID,令“水王”ID为数组中的第一个a[0],用一个整型j记录水王ID出现次数,相邻数比较相同则j++,不同则j- -,并且如果j<=0,则对水王换ID,进行循环判断,直至循环结束。

    源代码:

     1 package shuiwang;
     2 import java.util.*;
     3 
     4 public class Find_shuiwang {
     5 
     6     public static void main(String[] args) {
     7         // TODO Auto-generated method stub
     8         Find_function function = new Find_function();
     9         Scanner sca=new Scanner(System.in);
    10         System.out.println("输入帖子数:");
    11         int n=sca.nextInt();
    12         String post[]=new String[n+1];
    13         
    14         int i;
    15         System.out.println("输入帖子ID:");
    16         for(i=0;i<n+1;i++)
    17         {
    18               post[i]=sca.nextLine();
    19         }
    20         String shuiwang = function.find(post, n);
    21         System.out.println("水王ID是 " + shuiwang);
    22     }
    23 
    24 }
    main
     1 package shuiwang;
     2 
     3 public class Find_function {
     4     String find(String[] post,int n)
     5     {
     6         int i,j = 0;
     7         String shuiwang = post[0];//令第一个ID为水王
     8         for(i=0;i<n;i++)
     9         {            
    10             if(!shuiwang.equals(post[i]))
    11                 {
    12                     j=j-1;
    13                     if(j<=0)    //如果j=0时,之前的ID一定有一半以上不是水王,所以消去的至多有一半水王
    14                        {
    15                           shuiwang=post[i+1];    //在剩下的ID中继续寻找
    16                           j=1;        //重新定义水王ID出现次数
    17                           i++;
    18                         }
    19                 }
    20             else
    21                 {
    22                     shuiwang=post[i];
    23                     j=j+1;//水王帖子数
    24                 }            
    25         }
    26         return shuiwang;
    27     }
    28 }
    Find_function

    结果截图:

  • 相关阅读:
    深入Java类加载全流程,值得你收藏
    如何用好Go的测试黑科技
    Go的内存对齐和指针运算详解和实践
    Go和Java的性能对比,真的如此吗?
    Go中锁的那些姿势,估计你不知道
    浅谈Go类型转换之间的那些事
    学堂在线课程字幕下载
    无序数组中求最大值和最小值的最少比较次数
    串口字符串-HEX格式
    个人程序命名规范
  • 原文地址:https://www.cnblogs.com/xiaosongbiog/p/5503655.html
Copyright © 2020-2023  润新知