zoukankan      html  css  js  c++  java
  • BUPT复试专题—寻找变化前01序列(2016)

    题目描述

    给你一个01序列,HDLC协议处理的话,如果出现连续的5个1会补1个0。例如1111110,会变成11111010。

    现在给你一个经过HDLC处理后的01序列,你需要找到HDLC处理之前的01序列。

    例如给你11111010

    你需要输出1111110

    输入

    输入正整数N,表示N例测试。接着输入N组数据,每组输入经过HDLC处理过的01序列(长度小于100)。

    输出

    对每组输入数据,输出HDLC处理前的01序列。

    样例输入

    2
    11111010
    1111100

    样例输出

    1111110
    111110

    来源

    2016机考B题 

    #include<iostream>
    #include<cstring>
    #include<iostream>
    #include<ctime>
    #include<cstdlib>
    #include<cstdio>
    #define maxn 105
    using namespace std;
     
    char a[maxn];
     
    int main()
    {
     
        int tes,len;
        int i;
        while(cin>>tes)
        {
            while(tes--)
            {
                cin>>a;
                len=strlen(a);
     
                int cnt=0;
                for(i=0; i<len; i++)
                {
                    if(a[i]=='1')
                    {
                        cout<<a[i];
                        cnt++;
                        if(cnt==5) 
                        {
                            i++;
                            cnt=0;
                        }
                    }
                    else 
                    {
                        cout<<a[i];
                        cnt=0;
                    }
                }
                cout<<endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    flex
    当前不会命中断点 源代码与原始版本不一致
    c setjmp longjmp
    VS 快捷键设置
    Lua C API 遍历 table
    lua class
    复习 C++ 中类的函数指针
    apache ab
    rabbitmq
    协程 coroutine
  • 原文地址:https://www.cnblogs.com/dzzy/p/8484668.html
Copyright © 2011-2022 走看看