• 软件工程作业--找水王


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

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

    思路:删贴,水王发帖数目超过了帖子数目的一半,我们从列表头开始匹配,每匹配到一个不一样的就把俩帖子都删了,遇到一样的就删一个留一个。

    #include<iostream>
    #include<string>
    #define N 10     //可以定义列表长度
    
    using namespace std;
    int main()
    {
        string king;
        //定义列表
        string IdList[N]={"2","3","1","3","1","1","7","1","2","3"};
        //假设第一个id是水王
        int i=0;
        int num=1;
        king=IdList[0];
        for(i=1;i<N;i++)
        {
            //如果当前id和king id不同
            if(IdList[i]!=king)
            {
                //num-1
                num=num-1;
                //num为0,将下一个id 设为 king,并直接跳过下一次循环,并将 num设为1
                //若num不为0,king 不变
                if(num==0)
                {
                    king=IdList[i+1];
                    i=i+1;
                    num=1;
                }
            }
            //若id和king id相同,num+1
            else
            {
                king=IdList[i];
                num=num+1;
            }
        }
        cout<<"要找的水王的 id 为:"<<king<<endl;
        return 0;
    }

     个人总结:遇到问题多思考,多动动脑子。

  • 相关阅读:
    带参的方法
    类的无参方法
    类和对象
    关于线程间的通信的几个解决事例
    一个简单的邮件发送
    关于process
    关于java的static语句块
    关于struts2拦截器获取页面参数
    hexo github pages 首页不展示,出现代码怎么办
    使用Hexo搭建个人博客(三)
  • 原文地址:https://www.cnblogs.com/XiaoGao128/p/13056074.html
Copyright © 2020-2023  润新知