2018年北京邮电大学计算机考研机试试题及答案

2018年北京邮电大学计算机考研机试试题及答案_第1张图片

/*
1.二进制数字调转
题目描述:一个2^32的数字n,将其转换成二进制数,再倒转,求倒转的二进制数对应的十进制数。
例如:
123
0000 0000 0000 0000 0000 0000 0111 1011
1101 1110 0000 0000 0000 0000 0000 0000
3724541952
举例:
输入:123
输出:3724541952
*/
#include
using namespace std;

int main()
{
    string a;
    cin>>a;
    int len = a.length();
    int c[len];
    int max_len = 0;
    if(a[0]=='0')
    {
        c[0] = -1;
    }
    else{
        c[0] = 1;
    }
    for(int i=1; i0;j--)
        {
            if(c[i]==c[j])
            {
                if(j-i>max_len)
                    max_len = j-i;
                break;
            }
        }
    }
    cout<

2018年北京邮电大学计算机考研机试试题及答案_第2张图片

/*
输出数字
题目描述:不同数字的输出形状如下:

黑色部分是1,白色部分是0。
输入:长度为1-20的字符串
输出:0和1组合的数字形状,
举例:
输入:01 
输出:
111001
101001
101001
101001
111001
*/


#include
using namespace std;
int main()
{
    string s;
    cin>>s;
    int len = s.length();
    int num = 0;
    for(int j=0; j<6; j++)
        for(int i=0; i

2018年北京邮电大学计算机考研机试试题及答案_第3张图片

不会

2018年北京邮电大学计算机考研机试试题及答案_第4张图片

/*
最长平衡子串
题目描述:只包含0和1的数字串中,如果0和1的个数一样,称为平衡字符串。求一个字符串的最长平衡子串
举例:
输入:01011  
输出:4
*/
#include
using namespace std;
int main()
{
    long long a;
    cin>>a;

    int b[33] = {0};

    if(a%2==0)
    {
        b[32] = 0;
    }
    else
    {
        b[32] = 1;
    }

    long long k=1;

    int cishu = 1;
    while(a>1)
    {
        while(k<=a)
        {
            k = k*2;
            cishu++;
        }
        cishu--;
        b[32-cishu+1] = 1;
        a = a-k/2;
        cishu = 1;
        k = 1;
    }
    int i=1,j=32;
    while(i=1;i--)
    {
        if(b[i]==1){
            int p = 32-i;
            while(p--){
                w = w*2;
            }
            sum+=w;
        }
        w = 1;
    }
    cout<

 

你可能感兴趣的:(online,judge)