找出两个只出现了一次的数字

来源:互联网 发布:国外设计app软件 编辑:程序博客网 时间:2024/06/05 04:53
题目1256:找出两个只出现了一次的数字

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:140

解决:69

题目描述:

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

输入:

输入的第一行包括一个整数N(1<=N<=1000)。
接下来的一行包括N个整数。

输出:

可能有多组测试数据,对于每组数据,
找出这个数组中的两个只出现了一次的数字。
输出的数字的顺序为从小到大。

样例输入:
62 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****************************************************************/