题目1256:找出两个只出现了一次的数字
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:140
解决:69
-
题目描述:
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
-
输入:
-
输入的第一行包括一个整数N(1<=N<=1000)。
接下来的一行包括N个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,
找出这个数组中的两个只出现了一次的数字。
输出的数字的顺序为从小到大。
-
样例输入:
-
6 2 3 9 3 7 2
-
样例输出:
-
7 9
-
-
#include<cstdio> #include<vector> #include<algorithm> using namespace std; int main() { bool b; int n,i,f; vector<int> v; while(scanf("%d",&n)!=EOF&&n) { while(n--) { scanf("%d",&i); v.push_back(i); } sort(v.begin(),v.end()); for(i=0,n=v.size()-1,b=false; i<n; ) { if(v[i]==v[i+1])i+=2; else { if(!b){ printf("%d",v[i]); ++i; b=true; } else { printf(" %d\n",v[i]); b=false; break; } } } if(b) printf(" %d\n",v[n]); v.clear(); } return 0; } /************************************************************** Problem: 1256 User: 3011216016 Language: C++ Result: Accepted Time:730 ms Memory:1024 kb ****************************************************************/