zoukankan      html  css  js  c++  java
  • Missing number

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

    题意:

          一组顺序数少了2个数,现在,我们了解到这顺序数有那些,需要找到丢失的那2个数。

         (要求输入多组数据)

          案例:

          input

          2

          3

          3 4 5

          1

          1

          output

          1 2

          2 3

    思路分析:

          长度为n的排列就是从1~n这连续的n个数。

          故,直接找出从1~(n+2)中缺少的数即可。

          直接进行两层循环,为了减少运行时间,可以尽量减少不必要的循环,所以,当找到那个数直接跳出第二层循环,如果找到两个数,可直接跳出第一层循环。

          还需要注意一点在两个数之后是没有空格的,注意空格输出

    源代码如下:

        

     1 #include<iostream>
     2 #define max 1000
     3 using namespace std;
     4 int main()
     5 {
     6     int T,n,a[max],i,j,k,s=0;
     7     cin>>T;
     8     for(i=1;i<=T;i++)
     9     {
    10         s=0;
    11         cin>>n;
    12         for(j=0;j<n;j++)
    13             cin>>a[j];
    14         for(j=1;j<=n+2;j++)
    15         {
    16             for(k=0;k<n;k++)
    17                 if(j==a[k])
    18                     break;
    19                 if(k>=n)
    20                 {
    21                     s++;
    22                     cout<<j;
    23                     if(s==1)
    24                        cout<<" ";
    25                 }
    26                 if(s==2)
    27                     break;
    28         }
    29         cout<<endl;
    30     }    
    31     return 0;
    32 }
  • 相关阅读:
    C语言-错误处理
    C语言-排序和查找
    PCB设计要点
    C语言-调试
    c++ 概述
    C语言-指针
    C语言-数组与指针 字符与字符串
    C语言-(void*)类型指针
    C语言-字符操作函数
    C语言-链表
  • 原文地址:https://www.cnblogs.com/q-c-y/p/4656223.html
Copyright © 2011-2022 走看看