WA了3个点,不知道哪里错了
#include<bits/stdc++.h>
using namespace std;
int n,len,ans[65];long long k;
void solve(int a,long long b){
if(a==1){
if(b==0)ans[++len]=0;
if(b==1)ans[++len]=1;
return;
}
if((b+1)<=pow(2,a-1)){
solve(a-1,b);
ans[++len]=0;
return;
}
else{
solve(a-1,pow(2,a)-b-1);
ans[++len]=1;
return;
}
}
int main(){
ios::sync_with_stdio(0);
cin>>n>>k;solve(n,k);
for(int i=len;i>=1;i--)cout<<ans[i];
return 0;
}