没有希望了,垃圾东西写的垃圾代码罢。
#include <bits/stdc++.h>
using namespace std;
char *n = new char[0];
char* filling(char *a,int start,int end,char *b);
char*/*再做一个函数用于递给主函数数据,或者static*/ cut(char *a,int s_w/*哪里开始查*/){
n = new char[s_w];
if(s_w == 1)if(a[s_w] == '1'){
n[s_w] = 'I';
return n;
}else {
n[s_w] = 'B';
return n;
}
//边界条件
else {
bool B_I = 0;
int sum = 1;
for(int i = s_w/2;i <= s_w;i++){
if(B_I == 1){
n[sum] = 'F';
sum++;
break;
}
else if(a[i] == '1'){
B_I = 1;
}else continue;
}
filling(n,s_w/2,s_w,cut(a,s_w/2));//填充数组
}
return n;
}
char* filling(char *a,int start,int end,char *b){
int sum = 1;
for(int i = start;i <= end;i++)a[i] = b[sum];
return a;
}
/*int hm(int size){
int sum1 = 0,i;
for(i = size;i >= 1;i/2){
sum1++;
}
return pow(2,sum1);
}*/
int main(){
int S_Of_N;
cin >> S_Of_N;
S_Of_N = pow(2,S_Of_N);
char t[S_Of_N];
for(int i = S_Of_N;i >= 1;i--)cin >> t[i];
// int fbi_hm = hm(S_Of_N);
cout << cut(t,S_Of_N/*,fbi,hm*/);
return 0;
}