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

    设计思路:
    根据题目得到了以下信息:
    1.水王会回复每个ID的发的帖子
    2.水王发帖数超过了论坛帖子数目的一半
     
    在这其中,可以看到很重要的一点:水王发帖数超过了总帖数的一半!
    那么,可以想象得到:假设我们知道水王的ID,且有一个变量n初始为0的数,要是每次看到水王的ID就+1,不是就-1,这样一来,看完一遍所有的ID,这个初始数值一定大于0;
    更进一步来思考:我们现在不知道水王的ID,初始化为第一个发帖人,将其看作是水王ID,那么进行第一步,当n小于0时,将水王的ID更新为当前的ID,视为水王;如此进行,遍历一遍之后点找到了水王。
     
    其实,运用这种方法,在每次n小于0更新ID时,意义上就将该ID视为+1,其他的ID均为-1,这样一来就是将该ID分离了出来,实现了计算该ID出现的次数。
    代码

    #include<iostream>

    #include<string>

     

    using namespace std;

     

    void main()

    {    

             int n = 0;

             int s;

             string a[100], m;

     

             cout << "请输入总贴数:";

             cin >> s;

            

             cout << "输入每个帖子的ID:";

             for (int i = 0; i < s; i++)

             {

                       cin >> a[i];

             }

            

             m = a[0];

            

             for (int i = 0; i < s; i++)

             {

                       if (m == a[i])

                       {

                                n += 1;

                       }

                       else

                                n -= 1;

                      

                       if (n < 0)

                       {

                                m = a[i];

                       }

             }

            

             cout << "水王是:" << m << endl;

     

    }

    截图:

    编程总结:

    经过这一次的编程让我认识到:一个好的程序最重要的一点就是 好的设计思路 ;它可以有效地提高程序的效率。

    而且,我们不能仅仅局限在一种思路中,有时候,换个思路会是一片不一样的天空!

  • 相关阅读:
    逻辑指的是思维的规律和规则,是对思维过程的抽象。
    逻辑
    什么是概念,判断和推理
    逻辑思维
    console.log 用法
    console.log()的作用是什么
    vue-cli创建的项目中引入第三方库报错 'caller', 'calle', and 'arguments' properties may not be...
    element-ui中upload组件如何传递文件及其他参数
    vueThink权限配置
    vue2.0集成百度UE编辑器,上传图片报错!!!
  • 原文地址:https://www.cnblogs.com/D9412/p/4520612.html
Copyright © 2011-2022 走看看