题解 | 二叉树
#include <bits/stdc++.h>
using namespace std;
int ans=0;
void countT(int a,int n){
if(a>n)return;
ans++;
countT(a*2,n);
countT(a*2+1,n);
}
int main(){
int m,n;
while(cin>>m>>n){
countT(m,n);
cout<<ans<<endl;
ans=0;
}
}
本题主要分享一下递归的写法,本题用递归是显而易见的,递归的写法个人的习惯是先写出来递归的过程,然后写递归中的操作,这里的递归就是二叉树的向下移动,直到超越边界结束,移动就是*2 和 *2+1,然后写递归过程,就是统计。最后因为我们的ans用的全局变量,所以别忘了归零
