编程之美-“水王”水贴计算

题目要求:

     三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他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"<<"\t"<<record<<endl;
}

  结果截图:

转载于:https://www.cnblogs.com/zZ-ily/p/4448449.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值