求救大佬看哪里漏洞
查看原帖
求救大佬看哪里漏洞
322096
hdw13427240186楼主2020/6/15 15:52

代码

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int n;
char a[100000];
int di(int n)
{
    if(n==0)
        return 1;
    n=2*di(n-1);
}
void last(int i)
{
    if(i>=2*n)
        return;
    last(i*2);
    last(i*2+1);
    cout<<a[i];
}
int main()
{
    int i,j,k;
    char s;
    cin>>n;
    n=di(n);
    scanf("%s",a+n);
    i=n;
    while(i<=2*n-1)
    {
        if(a[i]=='1')
        a[i]='I';
        else a[i]='B';
        i++;
    }
    i=n;j=n;k=n;
    while(i>=1)
    {
        if(i-j==k)
        {
            j=k/2;
            i=j;
            k=k/2;
        }
        if(i==1)
            break;
        if(a[i]=='B'&&a[i+1]=='B')
            a[i/2]='B';
        else
        {
            if(a[i]=='I'&&a[i+1]=='I')
                a[i/2]='I';
            else
                a[i/2]='F';
        }
        i=i+2;
    }
    last(1);
    return 0;
}
2020/6/15 15:52
加载中...