题目描述:
假设 你用一个1001个整数组的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间,此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个整数做一次处理,用一种算法找出重复的那个数字。(不用辅助的存储方式)
1.sum up all the number,then subtract the sum from 1001*1002/2(即1+2+3+..........+1001);
2.利用A XOR A XOR B=B;(A XOR A =0)
代码如下:
int findX(int a[])
{
int k = a[0];
for (int i = 1; i <= 1000; i++)
k~= a[i]~i;
return k;
}
原文地址:http://blog.csdn.net/wangfengfan1/article/details/45244979