5.18 Vj A - Phoenix and Balance
#include<bits/stdc++.h>
#define ll long long
using namespace std;
//让最大的数和前面n/2-1个较小的数加和,再减去剩下的数,就是答案
int main( )
{
int t,n,k=0;
cin>>t;
int a[t];
for(int i=0;i<t;i++)
{
cin>>n;
int b=2;
ll s=0,z=0;//s是结果较大的组合,z是结果较小的组合
for(int j=0;j<n-1;j++)//最大的数直接在最后与s加和
{
if(j<n/2-1)
{
s+=b;
}
else{
z+=b;
}
b*=2;
}
s+=b;
a[k]=s-z;
k++;
}
for(int i=0;i<t;i++)
{
cout<<a[i]<<endl;
}
#define ll long long
using namespace std;
//让最大的数和前面n/2-1个较小的数加和,再减去剩下的数,就是答案
int main( )
{
int t,n,k=0;
cin>>t;
int a[t];
for(int i=0;i<t;i++)
{
cin>>n;
int b=2;
ll s=0,z=0;//s是结果较大的组合,z是结果较小的组合
for(int j=0;j<n-1;j++)//最大的数直接在最后与s加和
{
if(j<n/2-1)
{
s+=b;
}
else{
z+=b;
}
b*=2;
}
s+=b;
a[k]=s-z;
k++;
}
for(int i=0;i<t;i++)
{
cout<<a[i]<<endl;
}
return 0;
}
}

浙公网安备 33010602011771号