题目链接: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 }