#include<iostream> using namespace std; bool iswei1(int data,int wei) { int i=8*sizeof(int); data=data>>(i-wei); return(data&1); } void number1(int *list,int length,int *num1,int *num2) { int data=0; for(int i=0;i<length;i++) { data=data^list[i]; } int wei=8*sizeof(int); int datatemp=data; for(int i=0;i<8*sizeof(int);i++) { if(datatemp&1) break; datatemp>>1; wei--; } *num1=*num2=0; for(int i=0;i<length;i++) { if(iswei1(list[i],wei)) *num1=*num1^list[i]; else *num2=*num2^list[i]; } } int main() { int a[1000]; int c; int i=0; while(cin>>c) { a[i]=c; i++; if(cin.get()==‘\n‘) break; } int num1; int num2; number1(a,i,&num1,&num2); cout<<num1<<‘ ‘<<num2; }
时间: 2024-10-12 15:04:14