题目: | FBI树 | |
来源: | Noip2004P3 | |
题目大意: | 有一个长度为2^N的字符串,将其构造成一棵树,树的两个儿子分别是其字符串的一 半,并后序输出这棵树上的字符串(全“0”串称为B串,全“1”串称为I串,既含“0”又 含“1”的串则称为F串) | |
数据范围: | 1 <= N <= 10 | |
样例: | 3 10001011 | IBFBBBFIBFIIIFF |
做题思路: | 看来还真是递归没写好,wa了好几次,这题就是一个递归,然后输出就好 | |
知识点: | 递归 |
var
s:ansistring;
ch:char;
n:longint;
//===========================================
function print(ss:ansistring):char;
var
l:longint;
lc,rc:char;
begin
l:=length(ss);
if l=1then
begin
casess[1] of
'1':begin
write('I');
exit('I');
end;
'0':begin
write('B');
exit('B');
end;
end;
end
else
begin
lc:=print(copy(ss,1,l shr 1));
rc:=print(copy(ss,l shr 1+1,l shr 1));
if(lc=rc) then
begin
write(lc);
exit(lc);
end
else
begin
write('F');
exit('F');
end;
end;
end;
//=============================================
begin
readln(n);
readln(s);
ch:=print(s);{<这个ch么用滴,只是一时没想起该怎么写>}
end.
题目来源:
http://yuanti.tyvj.cn:8080/Problem_Show.asp?id=1044