uva679
在洛谷上看到的题解
#include <iostream>
using namespace std;
int a, b, k, j; // 定义
int main()
{
int n;
cin >> n; // 输入数据组数
for (int i = 0; i < n; i++)
{ // 循环输入
cin >> a >> b; // 对应题目中的d和i
j = 1;
k = 1; // 每次处理数据都要初始化
while (k < a)
{ // 如果还没有落到底就进行操作
if (b % 2 == 0)
{ // 如果是偶数点(true)
j = j * 2 + 1; // j标记向右
}
else
{ // 如果是奇数点(false)
j *= 2; // j标记向左
}
k++; // 计数器要++
b = (b + 1) / 2; // 实际下落
}
cout << j << endl; // 落到底就输出,注意格式
}
return 0; // 结束啦!
}
b = (b + 1) / 2; // 实际下落 这一步我没看懂