文章

25

粉丝

364

获赞

8

访问

220.6k

头像
递归(C)
P1264 北京大学机试题
发布于2021年1月19日 21:36
阅读数 7.9k

#include <stdio.h>
#include <stdlib.h>

int caculation(int root,int n);

int caculation(int root,int n)
{
    if (root>n)
    {
        return 0;//当前节点不存在(边界)
    }
    else if (root==n)
    {
        return 1;//当前节点是最后一个节点(边界)
    }
    else
    {
        return caculation(2*root,n)+caculation(2*root+1,n)+1;//返回当前子树包含节点数
    }  
}

int main()
{
    int m,n;

    while (scanf("%d%d",&m,&n)!=EOF)
    {
        printf("%d\n",caculation(m,n));
    }
    
    //system("pause");
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发