FBI树
3 10001011
IBFBBBFIBFIIIFF
#include<cstdio>
#include<cstring>
char s[1100];
int FBI(int start,int len){//两个变量,start起始位置,len长度
if(len==1){
if(s[start]=='0'){
printf("B");
return 0;
}
else{
printf("I");
return 1;
}
}
else{//返回0说明全为0,返回1说明全为1,否则返回2
int x=FBI(start,len/2);
int y=FBI(start+len/2,len/2);
if(x==y&&x==0){
printf("B");
return 0;
}
else if(x==y&&x==1){
printf("I");
return 1;
}
else{
printf("F");
return 2;
}
}
}
int main(){
int n;//其实这样做,n是一个无用的变量
scanf("%d%s",&n,s);
int l=strlen(s);
FBI(0,l);
printf("\n");
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
SDNU 1168.FBI树【NOIP 2004 普及组】【不建树】【7月28】
原文地址:http://blog.csdn.net/a995549572/article/details/47102033