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

课堂练习-找水王

时间:2015-04-23 21:26:17      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

  题目:三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

  解题思路:根据课堂上的讨论,设计应为时间复杂度为O(n)。采用消除法来对问题求解:相邻两个ID若不同即消除,留在最后的一定是水王ID(题目中“发帖数目超过了帖子数目的一半”非常重要)。程序中给出的ID账号假定为10个

#include<iostream.h>
int main()
{
    int a[10];
    cout<<"请输入10个id账号:"<<endl;
    for (int k=0;k<10;k++)
    {
        cin>>a[k];
    }
    int temp=a[0];
    int j=1;
    for (int i=1;i<10;i++)
    {    
        if(a[i]==a[0])
            j++;                
        else    
            j--;
        if(j==0)
        {
            temp=a[i+1];
            j=1;
        }
    }
        cout<<"水王的账号id为:"<<temp<<endl;
        return 0;
}

 程序运行结果如下:

技术分享

技术分享

思考总结:

   课堂上在老师同学的提示下想到了采用消除法来解决水王问题,顿时感觉世界好神奇。但是方法想到了,处理循环问题有出现了,和舍友商量之后,问题得到了解决。本次练习又提高了我C语言的编程能力,同时也锻炼的我的思维逻辑能力。所以,以后对这些小问题应该多多练习,提高自己智商的同时还联系了编程能力。

课堂练习-找水王

标签:

原文地址:http://www.cnblogs.com/duang/p/4451475.html

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