• 课堂练习之找“水王”


    一、题目要求

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

          如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”。

    二、设计思路

        设计思路还没想明白。。只能看一下同学的思路了。。

      程序的设计思路大体就是,首先设2个变量,将第一个数暂时给shuiwang这个变量并且和下一个数比较,如果相同则用一个X变量自加一,不同则减一;如此循环,如果遇到不同时,一直减减减,x变为0,shuiwang又被新的数覆盖,以此类推,找到最终的水王ID。

    三、源代码

     1 #include<iostream.h>
     2 
     3 int findshuiwang(int arrID[],int num)
     4 {
     5     int shuiwang;
     6     int x;
     7     for(int i=x=0;i<num;i++)
     8     {
     9         if(x==0)
    10         {
    11             shuiwang=arrID[i],x=1;
    12         }
    13         else
    14         {
    15             if(shuiwang==arrID[i])
    16             {
    17                 ++x;
    18             }
    19             else
    20             {
    21                 --x;
    22             }
    23         }
    24     }
    25     cout<<("这个“水王”的ID就是:");
    26     cout<<("%d
    ",shuiwang);
    27     return shuiwang;
    28 }
    29     
    30 
    31 
    32 int main()
    33 {
    34     int arry[6]={222,333,333,333,444,444,};
    35     findshuiwang(arry,6);
    36     return 0;
    37 }

    四、实验截图

    五、实验总结:

    这次的课堂训练还木有想明白。。但是因为睡过了。怕交不上作业,所以只能看了一下同学的思路,基本大致代码还是同学的,稍微优化了一下,感觉还行,真的按照老师说的这个思路代码好简单。。虽然还有一点没有想明白。

  • 相关阅读:
    2018.12.30【NOIP提高组】模拟赛C组总结
    【NOIP2007提高组】矩阵取数游戏
    【NOIP2007提高组】字符串的展开
    【NOIP2007提高组】统计数字
    2018.12.22【NOIP提高组】模拟B组总结
    【NOIP2013模拟11.5A组】cza的蛋糕(cake)
    CDQ分治总结
    O(2),O(3),Ofast 手动开[吸氧]
    【NOIP2013模拟11.6A组】灵能矩阵(pylon)
    【GDKOI2012模拟02.01】数字
  • 原文地址:https://www.cnblogs.com/gaiiiiiiii/p/4448856.html
Copyright © 2020-2023  润新知