在1001个数中,只有一个数是重复的,想要消掉重复的找到一个的。
在位运算中异或可以消除相同的数。A^A就没了,把1001个数异或1000,就可以得出唯一一个的数。代码如下:
public static void main(String[] args) {
int N=1001;
int [] arr=new int[N];
for(int i=0;i<arr.length-1;i++){
arr[i]=i+1;
System.out.print(arr[i]);
}
arr[arr.length-1]=new Random().nextInt(N-1)+1;
int index=new Random().nextInt(N);
System.out.println(" ");
int x1 = 0;
for (int i=0;i<N;i++){
x1=(x1^i);
}
for(int i=0;i<N;i++){
x1=(arr[i]^x1);
}
System.out.println("x1="+x1);