方法比较简单,就是采用“^”运算,代码如下:
#include <stdio.h>static int nums0[11]={1,2,3,4,5,6,5,4,3,2,1};static int nums1[12]={1,2,3,4,5,6,12,5,4,3,2,1};int main(){int num,i,mask,num0,num1;for(i=0,num=0;i<11;i++){num=nums0[i]^num;}printf("num=%d\n",num);for(i=0,num=0;i<12;i++){num=nums1[i]^num;}for(i=0;i<32;i++){mask=1<<i;if((mask&num)!=0){break;}}for(i=0,num0=0,num1=0;i<12;i++){if((mask&nums1[i])!=0){num1=num1^nums1[i];}else{num0=num0^nums1[i];}}printf("num0=%d\n",num0);printf("num1=%d\n",num1);return 0;}