zoukankan      html  css  js  c++  java
  • 课堂练习-----查找水王

     查找水王id

    一、设计思路

          题目要求:

          三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

         设计思路:

            在水王发帖数目超过了帖子数目一半的前提下,将id表中每相邻两条帖子的id进行比较,若两个id不相同,则直接过滤掉,按照这种方法,最后留下的id就是水王的id。

    二、程序源代码   

     1 // shuiwang.cpp : Defines the entry point for the console application.
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<iostream.h>
     6 int find(int arr[],int num)
     7 {
     8     int shuiwang;
     9     int x;
    10     for(int i=x=0;i<num;i++)
    11     {
    12         if(x==0)
    13         {
    14             shuiwang=arr[i],x=1;
    15         }
    16         else
    17         {
    18             if(shuiwang==arr[i])
    19             {
    20                 ++x;
    21             }
    22             else
    23             {
    24                 --x;
    25             }
    26         }
    27     }
    28     printf("这个“水王”的ID就是:");
    29     printf("%d
    ",shuiwang);
    30     return shuiwang;
    31 }
    32     
    33 int main(int argc, char* argv[])
    34 {
    35     int arry[7]={1,2,1,3,1,4,1};
    36     find(arry,7);
    37     return 0;
    38 }

    三、运行结果截图

        

    四、总结

          在本次查找水王的id时,我借鉴了网上关于水王查找的思想。在自己设计思路时,总是没办法找到一个很好的办法去实现相邻的两个id的比较和数据的过滤,很让人苦恼,后来看到别人通过设定中间变量的方法来实现,顿时恍然大悟,觉得妙不可言,也对自己的思维进行了变通,得到一定的进步。

  • 相关阅读:
    操作系统(32-45)
    异或运算( ^ )
    计算机网络(16—30)
    操作系统(13-30)
    win7 linux双系统删除linux
    ubuntu安装matplotlib包
    vmware+CentOS 7 无法上网
    Python命令行清屏的简单办法
    jupyter notebook 工作目录修改
    ipython notebook设置工作路径和自动保存.py文件 ipython_notebook_config.py
  • 原文地址:https://www.cnblogs.com/mudanhuakai/p/4446972.html
Copyright © 2011-2022 走看看