zoukankan      html  css  js  c++  java
  • 找水王

    题目:三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他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语言的编程能力,同时也锻炼的我的思维逻辑能力。所以,以后对这些小问题应该多多练习,提高自己智商的同时还联系了编程能力。

  • 相关阅读:
    设备驱动开发之缓冲区读写操作
    什么是80Plus
    INF Manufacturer Section
    C++编程获得某台机器的IP地址
    INF DestinationDirs Section
    importlib模块
    django的内置信号
    auth模块(登录验证)
    头像文件的预览
    powerDesiger 常用设置
  • 原文地址:https://www.cnblogs.com/liuwei8882/p/5513033.html
Copyright © 2011-2022 走看看