找水王2

一、题目

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

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

二、设计思想

   从头到尾遍历帖子列表,比较相邻两个id,若相同,则记相同的id有几个,否则,将两个id消掉,同时计数减一。记录三个id。

三、源代码

#include<iostream.h>

int main()

{

    int arry[16]={1,2,3,3,2,2,2,2,3,3,4,4,4,4,3,4};

    int id1=arry[0],id2=arry[1],id3=arry[2];

    int k1=0,k2=0,k3=0;

    for(int i=0;i<15;)

    {

        if(id1==arry[i])

        {

            id1=arry[i];

            k1++;

            i++;

        }

        else if(arry[i]==id2)

        {

            id2=arry[i];

            k2++;

            i++;

        }

        else if(arry[i]==id3)

        {

            id3=arry[i];

            k3++;

            i++;

        }

        else

        {

            k1--;

            if(k1<1)

            {

                id1=arry[i+1];

                k1=0;

            }

            if(k2<1)

            {

                id2=arry[i+1];

                k2=0;

            }

            if(k3<1)

            {

                id3=arry[i+1];

                k3=0;

            }

            i++;

        }

    }

    cout<<id1<<"  "<<id2<<"  "<<id3<<"  ";

    return 0;

}

四、结果截图

 

五、实验心得

这次实验题目不难,但是想想出好的解决方案却不容易,做完实验后,我认为以后遇到问题要多从不同的角度思考。

 

posted @ 2015-06-17 13:54  weaponX  阅读(137)  评论(0编辑  收藏  举报