部分和。
以下是我的代码:
#include<stdio.h>
int n,len=1,s[2000]={0},sum[2000]={0};
void fbi(int begin,int end)
{
int mid=(begin+end)/2;
if(begin<end)
{
fbi(begin,mid);
fbi(mid+1,end);
}
if(sum[end]-sum[begin-1]==end-begin+1)
printf("%c",'I');
else if(sum[end]-sum[begin-1]==0)
printf("%c",'B');
else
printf("%c",'F');
}
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
len*=2;
for(i=1;i<=len;i++)
scanf("%1d",&s[i]);
for(i=1;i<=len;i++)
sum[i]=sum[i-1]+s[i];
fbi(1,len);
return 0;
}
posted on 2010-01-06 19:14
lee1r 阅读(611)
评论(0) 编辑 收藏 引用 所属分类:
题目分类:递推/递归