问题标题: 2115 FBI树(fbi) 怎么写?

0
0

1
已采纳
梁锦程
梁锦程
高级光能
高级光能

解析:write(l,r) 输出区间(l,r)所代表的 FBI 树,先输出左子区间,再输出右子区间,最后输出根。

int write(int l,int r)  
{  
  if(l==r)  
    {  
      printf("%c",(s[l]=='0')?'B':'I');  
      return s[l]=='1';  
    }  
  int sl,sr,k=(l+r)/2;  
  sl=write(l,k),sr=write(k+1,r);  
  if(sl+sr==0){printf("B");return 0;}  
  if(sl+sr==2){printf("I");return 1;}  
  printf("F");  return 3;  
}  

 

0
0
0
被禁言 戴震君
戴震君
新手守护
新手守护

解析:write(l,r) 输出区间(l,r)所代表的 FBI 树,先输出左子区间,再输出右子区间,最后输出根。

 
 

int write(int l,int r)

 

{

 

if(l==r)

 

{

 

printf("%c",(s[l]=='0')?'B':'I');

 

return s[l]=='1';

 

}

 

int sl,sr,k=(l+r)/2;

 

sl=write(l,k),sr=write(k+1,r);

 

if(sl+sr==0){printf("B");return 0;}

 

if(sl+sr==2){printf("I");return 1;}

 

printf("F"); return 3;

 

}

0
我要回答