一组数中,有两个数字各出现了一次,其他数字都是成对出现的,请找出这两个数。
来源:互联网 发布:java开源聊天机器人 编辑:程序博客网 时间:2024/05/17 01:34
#include<stdio.h>
#include<stdlib.h>
int Isone(int ret)
{
int pos=1;
while((ret&0x01)==0)
{
ret=ret>>1;
pos++;
}
return pos;
}
bool test(int value,int pos)
{
return (value>>(pos-1))&0x01;
}
void find(int* a,int n,int* num1,int* num2)
{
int ret=0;
for(int i=0;i<n;i++)
{
ret=ret^a[i];
}
int pos=Isone(ret);
for(int i=0;i<n;i++)
{
if(test(a[i],pos))
{
*num1^=a[i];
}
else
{
*num2^=a[i];
}
}
}
int main()
{
int a[10]={1,4,5,3,6,2,1,5,3,2};
int num1=0;
int num2=0;
find(a,10,&num1,&num2);
printf("num1:%d,num2:%d\n",num1,num2);
system("pause");
return 0;
}
0 0
- 一组数中,有两个数字各出现了一次,其他数字都是成对出现的,请找出这两个数。
- 有一组数字,有两个数字只出现一次,其他数字都是成对出现的,请找出这个数字。
- 有一组数字,有两个数字只出现一次,其他数字都是成对出现的,请找出这个数字
- 一组数字中只有两个数单独出现,其他数成对出现,找出这两个数
- 【c语言】 给一组数,有两个数只出现了一次,其他所有数都是成对出现的。找出这两个数
- 一组数据中只有一个数字出现了一次和 一组数据中只有两个个数字出现了一次其他所有数字都是成对出现的。请找出这个数字
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。
- 一组数据中只有一个数字出现了一次,其他所有数字都是成对出现的。 请找出这个数字。
- 一组数中,只有两个数只出现了奇数次,其他所有数都是成对出现的,请找出那两个数
- 一个数组中只有两个数字单独出现,其余数字都是成对出现的,请找出这两个数。
- 找出一组数中只出现一次的两个数,其他所有数都是成对出现的
- 给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数。
- 给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数
- 【经典面试题】给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数
- 一个数组中只有两个数字是出现一次的,其他数字都是成对出现,找出这两个数字
- 一串数字中有两个只出现一次的数字其余都是成对相同,求这两个数
- 分离线程
- Angular2入门——(4)为模板应用样式
- 线程同步
- 死锁问题
- 生产者消费者模型
- 一组数中,有两个数字各出现了一次,其他数字都是成对出现的,请找出这两个数。
- 读写锁
- 信号量 (线程互斥)
- 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
- 两个栈实现一个队。
- 【JZOJ 3432】【OnlineJudge 1061】小M的服务器(含斜率优化解释)
- poj之旅——3484
- 请实现一个函数,把字符串中的每个空格替换成“%20”。
- 设计一个类,我们只能生成该类的一个实例。