package cn.test.test;
/*
* 现有0到99,共计100个整数,各不相同,将所有数放入一个数组,随机排布。
* 数组长度101,多余的数字是0到99其中任意一个数(唯一重复的数字)
* 问题:将这个重复的数字找出来
*/
public class Test1 {
public static void main(String[] args) {
int[] arr = new int[101];
for (int i = 0; i < 100; i++) {
arr[i] = i;
}
arr[100] = 38;
//打乱
for (int i = 0; i < 100; i++) {
int index1 = (int) (Math.random()*101);
int index2 = (int) (Math.random()*101);
//交换元素
int temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}
for (int i = 1; i < arr.length; i++) {
arr[0] = arr[0] ^ arr[i];
}
for (int i = 0; i < 100; i++) {
arr[0] = arr[0] ^ i;
}
System.out.println("重复为"+arr[0]);
}
}