编程实战の异或的应用

来源:互联网 发布:c语言基础 编辑:程序博客网 时间:2024/06/05 18:42

题目

输入N,接下来有2*n-1个数,其中只有1个数只出现一次,其余均出现2次,编写函数找出这个数
样例输入:

5 1 2 3 4 5 1 2 3 5

样例输出:

4

解:

AC代码:

#include<iostream>#include<cstdio>#include<string>#include<fstream>#include<cmath>#include<cstring>using namespace std;int  fun(int n,int a[]){  /**********Program**********/    int res=0;    for(int i=0;i<2*n-1;i++)        {            res^=a[i];        }        return res;  /**********  End  **********/}main(){    int result;    int n,a[100];    cin>>n;    for (int i=0;i<2*n-1;++i)    cin>>a[i];    result=fun(n,a);    cout<<result<<endl;}

小结:

  • 任何数异或0值不变,任何数与自己异或值为0
  • 异或运算有交换律
  • 异或运算是位运算
原创粉丝点击