一、题目要求
现有一个灌水论坛,信息学院的学生都喜欢在上面交流灌水。传说在论坛上有一个“水王”,它不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目已超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”。
二、设计思路
程序的设计思路大体就是,首先设2个变量,将第一个数暂时给shuiwang这个变量并且和下一个数比较,如果相同则用一个X变量自加一,不同则减一;如此循环,如果遇到不同时,一直减减减,x变为0,shuiwang又被新的数覆盖,以此类推,找到最终的水王ID。
三、源代码
/ 123.cpp : Defines the entry point for the console application. // #include "stdafx.h" int findshuiwang(int arrID[],int num) { int shuiwang; int x; for(int i=x=0;i<num;i++) { if(x==0) { shuiwang=arrID[i],x=1; } else { if(shuiwang==arrID[i]) { ++x; } else { --x; } } } printf("这个“水王”的ID就是:"); printf("%d ",shuiwang); return shuiwang; } int main(int argc, char* argv[]) { int arry[6]={11110,11110,11110,11110,11112,11112}; findshuiwang(arry,6); return 0; }
四、实验截图