基础数学问题

找筷子

解题思路:

要找出唯一单着的那个数,可以用异或的方式
我们已知 a ^ a = 0 ,对于存在偶数个的数字,迟早会互相抵消,奇数个的数字也会两两抵消,只剩下最后一个答案。

AC代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

int main(){
	int n;
	int a;
	scanf("%d", &n );
	int ans = 0;
	for( int i = 0 ;i < n ; i++ ){
		scanf("%d", &a );
		ans ^= a;
	}
	printf("%d\n", ans );
	return 0;
}

猜你喜欢

转载自www.cnblogs.com/w-w-t/p/13160346.html