#include <iostream>
#include <cstdio>
using namespace std;
int countNode(int m, int n) {
if (m > n) {
/*
* 递归出口
* 因为一共就n个顶点,所以m>n时结束即可
*/
return 0;
} else {
/*
* 根节点+左子树的节点数+右子树的节点数
*/
return 1 + countNode(2 * m, n) + countNode(2 * m + 1, n);
}
}
/**
* 二叉树--北京大学
* @return
*/
int main() {
int m;
int n;
while (cin >> m >> n) {
cout << countNode(m, n) << endl;
}
return 0;
}

京公网安备 11010502036488号