zoukankan      html  css  js  c++  java
  • 编程之美-“水王”水贴计算

    题目要求:

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

      如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
    想法:
          我们在这张ID列表中要注意到水王的ID是出现了帖子数目的一半这也就成为了题目的突破口,就如同参加选举投票时,你可以选三个人,而且参加选举的也仅是这三个人,如果你每个人都投了一票,这就意味着你放弃了选择;同理水王拥有最高的“票数”,当他减去别人的“票数”时,他依旧为正数,那他就获胜了。
    源代码:
         
    #include<iostream.h>
    int find(int *ID, int N)  
    {  
        int nTimes = 0;  
        int i;  
        int people;  
        for (i = 0; i < N; i++)  
        {  
            if (nTimes == 0)  
            {  
                people = ID[i];  
                nTimes++;  
            }  
            else  
            {  
                if (people == ID[i])  
                    nTimes++;  
                else  
                    nTimes--;  
            }  
        }  
      
        return people;  
    } 
    void main()
    {
        int a[15]={5,6,8,2,4,9,7,5,7,6,5,2,5,1,5};
    	int record=find(a,15);
    	cout<<"水王ID"<<"	"<<record<<endl;
    }
    

      结果截图:

  • 相关阅读:
    make_shared和shared_ptr的区别
    bitcoined
    ofstream的使用方法--超级精细。C++文件写入、读出函数(转)
    visual studio 安装过程
    Socket通信原理探讨(C++为例)
    以太坊的记录和关注点
    以太坊的应用
    以太坊
    比特币、以太坊
    c++
  • 原文地址:https://www.cnblogs.com/zZ-ily/p/4448449.html
Copyright © 2011-2022 走看看