/**
* 题目:1-100 放在大小为101的数组中,
* 只有一个可重复元素,每个数组元素只能访问一次
* 且不借助辅助空间,请把重复的数找出来。
* tip:a^a = 0; a^0 = a
*
*/
public static void main(String[] args) {
final int N = 101;
int[] a = new int[N];
for(int i = 0; i < N-1; i++) {
a[i] = i+1;
}
a[N-1] = (int)(1 + Math.random()*(N-1));
//插入到任意位置
int randomIndex = (int)(Math.random()*N);
int temp = a[N-1];
a[N-1] = a[randomIndex];
a[randomIndex] = temp;
for(int i = 0; i < N; i++) {
System.out.print(a[i]+" ");
}
//以上为生成题目要求的数组
int x1 = 0;
for(int i = 1; i <= N-1; i++) {
x1 = (x1^i);
}
for(int i = 0; i < N; i++) {
x1 = (x1^a[i]);
}
System.out.println();
System.out.println(x1);
}