Missing number

题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=114468

题目大意:

     多组案例T,每个案例含n+2个数据,这n+2个数据构成一组有序列,现在已知这组数据中的n个,请找出缺失的两个数据。

     案例:

 

              Sample Input

         2 3 3 4 5 1 1

 

              Sample Output

         1 2 2 3

 

题目分析:

     长度为n的排列就是从1~n这连续的n个数,已知数据个数为n个,则算上缺失数据共计n+2个数据,则可利用循环嵌套找出缺失的两个数据。

源代码:

 

 1 #include<iostream>
 2 using namespace std;
 3 const int maxn=1000;
 4 int a[maxn];
 5 int main()
 6 {
 7     int T,n,k,i,j;
 8     cin>>T;//输入案例数
 9     while(T--)
10     {    cin>>n;//当前案例已知数据个数
11          k=0;
12          for(i=0;i<n;i++)
13              cin>>a[i];//输入已知数据
14          for(j=1;j<=n+2;j++)
15          {     for(i=0;i<n;i++)//判断是否缺失数据j
16                if(a[i]==j) break;
17              if(i>=n) 
18              {  k++;
19                 if(k==1)//输出格式控制
20                    cout<<j<< ' ';
21                 if(k==2)
22                    cout<<j<<endl;  
23              }
24          }        
25     } 
26     return 0;
27 }    

 

posted @ 2015-07-18 17:15  ~瞬间*  阅读(154)  评论(0编辑  收藏  举报