可判断数据中有多个数字只出现一次,其他所有数字都是成对出现的。然后输出这些数字。(使用位运算)

来源:互联网 发布:新手手机编程软件 编辑:程序博客网 时间:2024/05/20 11:32
异或:按位异或 相同为0,不同为1。
所以一个数与它自己异或一定为0,用这个想法实现这个问题。
#include<stdio.h>int main(){int j = 0,k = 0,s = 0;int arr[]={1,2,3,4,1,2,3};int i=sizeof(arr)/sizeof(arr[0]);for(j=0;j<i;j++){s = 1;for(k=0;k<i;k++){if(k!=j){s=s*(arr[j]^arr[k]);}}if(s!=0){printf("%d ",arr[j]);}}return 0;}

阅读全文
0 0
原创粉丝点击