心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

部分和。

以下是我的代码:

#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 阅读(595) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:递推/递归

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理