根据二叉树的特性
#include<iostream> using namespace std; int twotree(int m,int n) { if(2*m+1<=n) return twotree(2*m,n)+twotree(2*m+1,n)+1; else if(2*m<=n) return twotree(2*m,n)+1; else return 1; } int main() { int m,n; while(cin>>m>>n) { if(m==0 && n==0) break; cout<<twotree(m,n)<<endl; } return 0; }