• 寻找水王2


    一、题目

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

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

    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

    二、设计思想

       这次寻找的ID有三个,所以我们用三个标记来计数,当三个标记有空位时,ID直接放入,并开始计数,如果没有空位,比较新的ID和三个标记ID,如果与其中某一个相同,那个标记就计数增加,如果没有,那么所有的标记都减少。

    三、源代码

      

    //  #include <stdafx.h>
    #include <iostream.h>
    
    
    int main(int argc, char* argv[])
    {
        int n[16]={2,9,7,2,2,3,3,2,4,3,5,5,3,5,3,2};
        int tienum; 
        int i,j;
        int shui[3]={0,0,0},k[3]={0,0,0};
        tienum=16;
    /*    cout<<"请输入帖子总数:";
        cin>>tienum;
        cout<<endl;
        for(i=0;i<tienum;i++)
        {
            cout<<"请输入第"<<i+1<<"个帖子的ID:";
            cin>>a[i];
        }*/
        for(i=1;i<tienum;i++)
        {
    
             if (shui[0]==n[i])
                k[0]++;
             else if (shui[1]==n[i])
                k[1]++;
             else if (shui[2]==n[i])
                k[2]++;
            else if (k[0]==0)
            {
                shui[0]=n[i]; 
                k[0]++;
            }
            else if (k[1]==0)
            {
                shui[1]=n[i]; 
                k[1]++;
            }
            else if (k[2]==0)
            {
                shui[2]=n[i]; 
                k[2]++;
            }
            else
            {
                k[0]--;
                k[1]--;
                k[2]--;
            }
            
            
        }
        cout<<"水王ID是:"<<shui[0]<<""<<shui[1]<<""<<shui[2]<<endl;
        return 0;
    }

    四、截图

    五、总结

    方法都一样,只不过量增加了,多思考一点就能进步一点

  • 相关阅读:
    [导入]微软的XP和Server2003在双核CPU上有缺陷
    [导入]可怜的软件开发
    [CZoneSoft]在Firefox里播放wmv流媒体视频
    [导入]直接用IL改写别人的程序
    [导入]清除3721的中文上网插件CNS
    [导入]完成可脚本调用的视频录制控件
    垃圾短信投诉的地方和方法
    [导入]不需要服务器端的在线录制视频
    [导入]各银行跨行提款收费比较
    [导入]电热水器选购
  • 原文地址:https://www.cnblogs.com/boluoland/p/4469001.html
Copyright © 2020-2023  润新知