UVa Dropping Balls

题目链接:

https://cn.vjudge.net/problem/UVA-679

 /*
问题
输入完全二叉树的层数D和有几个小球滚落,计算最后一个小球落入的叶子结点的小号。 解题思路
直接模拟超时,所以想想其他的办法。看看能不能直接计算最后一个小球的路线,可以知道前两个球必然是一个落入左子树,
一个落入右子树,那么对于给出的第I个编号的小球,如果I是奇数,它就是往左走的第(I+1)/2个小球,当I是偶数的时候,
它就是往右走的第I/2个小球。
*/
#include<cstdio>
int main()
{
//freopen("E:\\testin.txt","r",stdin);
int t,D,I;
while(scanf("%d",&t) == && t != -){
while(t--){
scanf("%d%d",&D,&I);
int k=;
for(int i=;i<D-;i++){
if(I&){
k =k * ;
I=(I+)/;
}
else{
k = k*+;
I = I / ;
}
}
printf("%d\n",k);
}
}
return ;
}
上一篇:yum源配置问题


下一篇:js读取iframe里的元素