杭电OJ(HDOJ)2095题:find your present (2)(数论)
2015-04-09 13:29
483 查看
题意:
输入一个奇数n(0示例输入:
51 1 3 2 2
3
1 2 1
0
示例输出:
32
解决方案(1):
使用排序,将这个n个数进行升序排序,这样使相同的数两两排列在一起,只有那一个答案打单身。就是可以找出这个答案#include<cstdio> #include<algorithm> using namespace std; int arr[1000000]; int main() { int n,i,j; scanf("%d",&n); while(n>0) { for (i = 0; i < n; ++i) { scanf("%d",arr+i); } sort(arr,arr+n); for (i = 0; i < n; i += 2) { if (arr[i] != arr[i + 1] || i == n - 1) break; } printf("%d\n",arr[i]); scanf("%d",&n); } }
解决方案(2):
利用数论知识:a^b^a=b,答案与n-1个数异或就是可以找出最终答案#include<iostream> using namespace std; int main() { int n,answer,a; while(cin>>n,n) { answer=0; while(n--) { cin>>a; answer^=a; } cout<<answer<<endl; } }
相关文章推荐
- 【杭电-oj】-2095-find your present (2)(输出奇数个的数)
- 杭电OJ-- 2095 find your present (依然很水)
- hdoj 2095 find your present (2) 【位运算】
- HDOJ 2095 find your present (2)
- [热身题][hdoj_2095]find your present (2)
- 杭电oj find your present (2)
- 杭电2095 find your present (2)
- 武汉科技大学计算机学院菜鸟杯:find your present (2).(杭电2095)
- HDOJ 2095-find your present (2)
- HDOJ 2095 find your present (2)
- HDOJ 2095 Find your present (2) 异或运算
- HDOJ 2095 find your present (2)
- hdoj 2095 find your present (2)【位运算,异或】
- HDOJ 2095 find your present (2) 位运算
- hdoj 1563 Find your present!&&2095 Find your present(2) 异或运算
- hdoj 2095 find your present (2)
- HDOJ-2095 Find your present (2) / NYOJ-528 找球号(三)
- hdoj-2095-find your present (2)【位异或】
- HDOJ2095 find your present (2)
- 杭电 2095 find your present (2)【位运算 异或】