题目描述
立秋有一个长度为 n 的数组 a,所有数字都是正整数,并且除了其中第一个数字以外其它数字都等于前面所有数字的和。
例如,数组 [1,1,2,4,8,16] 就有可能是立秋有的一个数组,因为除了第一个数字 1,后面的每个数字都是前面数字的和,例如:
- 第二个数字 1=1。
- 第三个数字 2=1+1。
- 第四个数字 4=1+1+2。
- 第五个数字 8=1+1+2+4。
- 第六个数字 16=1+1+2+4+8。
现在立秋告诉了秋丽数字 x 存在于这个数组中,秋丽希望知道 an 最小会是多少,或者说整个数组最后一个数字最小有多少。
输入格式
本题有多组测试数据。
输入第一行一个数字 T 表示测试数据组数。
接下来 T 行每行两个正整数 n,x。
输出格式
输出共 T 行,分别表示每组测试数据的答案。
对于某组数据 n,x,输出一行一个正整数表示可能的最小的 an。
输入输出样例
输入 #1
3 2 2 3 2 4 2
输出 #1
2 2 4
输入 #2
3 3 1 3 2 3 4
输出 #2
2 4
输入 #3
3 2 6 3 6 4 6
输出 #3
6 6 12
输入 #4
3 3 3 3 6 3 12
输出 #4
6 6 12
#include<bits/stdc++.h>
using namespace std;
int x,n,t;
int main()
{
cin>>t;
while (t--)
{
cin>>n>>x;
int ans=pow(2,n-2);
for(long long i=x;;i*=2)
{
if(i%ans==0)
{
cout<<i<<endl;
break;
}
}
}
return 0;
}