#include<iostream>
using namespace std;
int main(){
int n=0;
int ballNum=0;
cin>>n>>ballNum;
int pos=1;
int maxPos=pow(2.0,n-1)-1;
while(ballNum!=0&&pos<=maxPos){
if(ballNum%2!=0){
pos*=2;
}
else
pos=pos*2+1;
ballNum=(ballNum+1)/2;
}
cout<<pos<<endl;
}
今天看了算法竞赛入门经典,看到了那个二叉树,就是小球掉落那个题目,琢磨了一会儿,写了一个小程序。