题目描述:
已知一个二叉树的最后一个结点为n,现在求结点m所在的子树中一共包括了多少个结点。可以设定一个全局变量num记录结点数,然后用递归方法计算结点的左右子树的结点数。
输入描述:
每行包含m,n
输出0,0表示结束
输出描述:
m所在子树的结点数
代码:
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int num=0;
int count(int m)
{
if(m<=n)
{
num++;
count(m*2);
count(m*2+1);
}
return 0;
}
int main()
{
int m;
while(cin>>m>>n)
{
if(m==0&n==0)
break;
count(m);
cout<<num<<endl;
}
return 0;
}