zoukankan      html  css  js  c++  java
  • 找水王

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

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

    1.设计思想

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

    2.代码实现

    import java.util.*;
     2 public class ZSW {
     3
     4     public static void main(String[] args) {
     5         Scanner sca=new Scanner(System.in);
     6         System.out.println("输入帖子总数");
     7         int count=sca.nextInt();
     8         int a[]=new int[count];
     9        
    10         int i,j=1,sw;//j为某个ID出现的次数,假设为sw(水王ID)出现的次数
    11         System.out.println("输入帖子ID");
    12         for(i=0;i<count;i++)
    13         {
    14             a[i]=sca.nextInt();
    15         }
    16         sw=a[0];//假设第一个数为水王ID
    17         for(i=1;i<count;i++)
    18         {
    19             if(sw!=a[i])
    20             {
    21                 j=j-1;
    22                 if(j<=0)    //如果j<=0,则表示sw不是水王ID。因为水王发帖数大于一半,无论怎么抵消,都不会小于等于0
    23                 {
    24                     sw=a[i+1];    //所有要换其他ID为水王的ID
    25                     j=1;        //重新定义水王ID出现次数
    26                     i++;
    27                 }
    28             }
    29             else
    30             {
    31                 sw=a[i];
    32                 j=j+1;//统计水王帖子数
    33             }
    34         }
    35         System.out.println("水王ID是 "+sw);
    36     }
    37 }

    3.实现截图

  • 相关阅读:
    590. N-ary Tree Postorder Traversal
    C++——指针3
    C++——指针2-指向数组的指针和指针数组
    C++——指针1
    C++——二维数组和对象数组
    C++——一维数组
    C++——程序的结构
    C++——类与对象
    C++——函数
    C++——简单程序设计
  • 原文地址:https://www.cnblogs.com/clueless/p/7025752.html
Copyright © 2011-2022 走看看