奇妙的算法--UVA 679(二叉树的编号)

题干略

直接根据规律模拟最后一个小球的下落

#include <stdio.h>
#include <math.h>
#include <stack>
#include <iostream>
using namespace std;

int main(){
	int no_use,d,i;
	cin>>no_use;
	while(cin>>d>>i && d!=-1){
		int k=1;
		for(int l=0;l<d-1;l++){
			if(i%2){ k*=2;i=(i+1)/2;
			}
			else{ k=k*2+1;i/=2;
			}
			
		}
    
    cout<<k<<endl;
	}
	if(getchar()==-1) 
	return 0;
}

  

posted @ 2018-02-05 15:52  柳暗花明_liu  阅读(88)  评论(0编辑  收藏  举报