码迷,mamicode.com
首页 > 其他好文 > 详细

找出水王

时间:2015-06-11 06:59:42      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

题目:
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
思路:
根据题目可以得到如下信息:
1.水王会回复每个ID的发的帖子
2.水王发帖数超过了论坛帖子数目的一半
根据这两点,我认为可以通过查找每个ID的回帖ID号,找到水王(因为水王会回复其他ID发的每个帖子,所以通过查询各个ID的回帖ID,则查询多少个ID,必有多少个重复的ID,即水王),但这种方法查询较为繁琐。
通过别人的讲解,得到另一种思路:
消消乐游戏的原理
定义初始化变量n和m,用m来表示ID,每当m与当前ID不相同时,n就减1;反之就加1;当n小于0时更新m为当前ID。
代码如下:
#include<iostream>
#include<string>
using namespace std;
#define N 5

void main()
{
    int n = 0;
    string a[N], m;
    cout << "输入ID:" ;
    for (int i = 0; i < N; i++)
    {
        cin >> a[i];
    }

    m = a[0];

    for (int i = 0; i < N; i++)
    {
        if (m == a[i])
        {
            n += 1;
        }
        else
            n -= 1;
        if (n < 0)
        {
            m = a[i];
        }
    }
    cout << "水王是:" << m << endl;
}

  

找出水王

标签:

原文地址:http://www.cnblogs.com/licongzhuo/p/4567935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!