题目:
http://acm.hdu.edu.cn/showproblem.php?pid=1029题意:
给出一列数字,求其中出现次数大于一半的那个数字。
思路:
去年这会就有学长把这个当智力题出过,没想到HDU上真有这题,出现次数大于一半,那么把所有两两不同的数字都消去,剩下的那个就是了。代码:
#include <stdio.h>
int main()
{
int i,j,k,kk,t,x,y,z,n;
while(scanf("%d",&n)!=EOF&&n)
{
for(i=0,z=0;i<n;i++)
{
scanf("%d",&y);
if(!z)x=y,z++;
else
{
if(x==y)z++;
else z--;
}
}
printf("%d\n",x);
}
return 0;
}