单身狗

来源:互联网 发布:淘宝一千零一夜从哪看 编辑:程序博客网 时间:2024/06/11 16:27
#include<stdio.h>#include<assert.h>#include<windows.h>void find_single_nums(int arr[], int sz, int *num1, int *num2){assert(arr);assert(sz > 0);int tmp = arr[0];int i = 1;for (i = 1; i < sz; i++){tmp = tmp^arr[i];}int flag = 1;while (1){if (tmp & flag)          //成立说明此处为1{break;}else{flag = flag << 1;}}for (i = 0; i < sz; i++){if (arr[i]&flag){*num1 = *num1^arr[i];}else{*num2 = *num2^arr[i];}}}int main(){int arr[] = { 1, 1, 22, 33, 22, 33, 5, 6, 7, 8, 5, 8, 7, 6, 999, 222, 38, 76, 38, 76 };int sz = sizeof(arr) / sizeof(arr[0]);int num1 = 0;int num2 = 0;find_single_nums(arr, sz, &num1, &num2);printf("num1=%d\n", num1);printf("num2=%d\n", num2);system("pause");return 0;}


0 0