我的想法是这个数组先异或一遍,在和1~n异或一遍,结果放到变量xor里,然后创建两个循环,如果xor^i^j为零,那么i和j就是缺少的数字,但是却不行,这是为什么
package yuangong;
public class FindTwoOfNNumbers {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] digit={
1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,
18,19,20,31,32,33,34,35,36,37,38,39,40,
51,52,53,54,55,56,57,58,59,60,21,22,23,
24,25,26,27,28,29,30,41,42,43,44,45,46,
47,48,49,50,61,62,63,64,65,66,67,68,69,
70,71,72,73,74,75,76,77,78,79,80,81,82,
83,84,85,86,87,88,89};//1~90缺少11,90
int n=digit.length;
int xor=0;
for(int i=0;i<n;i++){
xor=xor^digit[i]^(i+1);
}
xor=xor^(n+1)^(n+2);
int XOR;
for(int i=1;i<=n+2;i++){
for(int j=1;j<=n+2;j++){
XOR=xor^i^j;
if((XOR)==0){
System.out.println(i+" "+j);
break;
}
}
}
}
}