列表

详情


NC52075. 异或和

描述

sun非常的喜欢数字,现在他想到了一个新问题:给你一个数列,想你帮他算算,这个数列中,出现次数为奇数个的数字的异或和。

输入描述

第一行是一个整数n
接下来一行,n个整数a_i,代表整个数列

输出描述

一行,代表出现次数为奇数个的数字的异或和

示例1

输入:

5
1 2 3 4 4

输出:

0

示例2

输入:

5
1 1 2 3 3

输出:

2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C(gcc 7.5.0) 解法, 执行用时: 955ms, 内存消耗: 32348K, 提交时间: 2022-10-27 23:52:18

#include <stdio.h>

int main()
{
    int n, ans = 0, x;
    scanf("%d", &n);
    while(n --) scanf("%d", &x), ans ^= x;
    printf("%d\n", ans);
    return 0;
}

C++(g++ 7.5.0) 解法, 执行用时: 944ms, 内存消耗: 408K, 提交时间: 2022-11-07 20:21:52

#include<bits/stdc++.h>
int main()
{
	int n, a, ans=0;
	scanf("%d", &n);
	while(n--)
	{
		scanf("%d", &a);
		ans=ans^a;
	}
	printf("%d", ans);	
	return 0;	
} 

C++14(g++5.4) 解法, 执行用时: 1693ms, 内存消耗: 484K, 提交时间: 2019-10-15 20:12:01

#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,s=0;
scanf("%d",&n);
while(n--)
{
scanf("%d",&a);
s^=a;
}
printf("%d\n",s);
return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 1699ms, 内存消耗: 492K, 提交时间: 2019-09-14 07:54:01

#include<iostream>
using namespace std;
int main(){
	int n,m,c = 0;
	cin >> n;
	while(n--){
		scanf("%d",&m);
		c ^= m;
	}
	cout << c;
	return 0;
}

C(clang 3.9) 解法, 执行用时: 1918ms, 内存消耗: 868K, 提交时间: 2019-10-15 20:40:08

#include <stdio.h>
int main(){
int n,a,sum=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a);
sum^=a;
}
printf("%d",sum);
}

上一题