首页 > 学院 > 开发设计 > 正文

HDU 2095 产生冠军 [位异或]

2019-11-08 01:39:02
字体:
来源:转载
供稿:网友

题目大意:给定n个数字,找出其中只出现了奇数次的数字

此题可以利用位异或的性质解决

位异或计算法则有基本的交换和结合法则,但比较特殊的是

a^a=0

a^0=a

根据这点可以将所有加入运算出现偶数次的元素剔除

最后就只剩下出现奇数次的元素

以下是代码:

#include <stdio.h>  int main()  {      int n,x,ans;      while(~scanf("%d",&n)&&n!=0){          ans=0;          while(n--)  {              scanf("%d",&x);              ans^=x;          }          PRintf("%d/n",ans);      }  } 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表