microsoft的一道面试题
有2*n+1个数,其中有2n个数是成对的,只有一个是不同的,找出这个数。例如:输入: 12 54 12 678 54 678 1000
输出:1000
1000是落单的
用简便方法,只几行代码
本人还想到一种方法,以前在奇瑞公司有过类似的题目,不过是用的苹果代替的,实例操题
把数拿出来一个,剩下的能否被2除
void main()
{
int a[]={...};
int nend=?;
int ns=0;
for(nterm=0;nterm<nend;nterm++)
ns+=a[nterm];
for(nterm=0;nterm<nend;nterm++)
if ((s-a[nterm])/2!=0)
{
cout<<a[nterm];
break;
}
}
不过这个程式,有点逻辑上的BUG,我想可能有更好的做好,因为题目说的是用几行代码