n=64的时候爆了,但不知道怎么改
#include<bits/stdc++.h>
using namespace std;
unsigned long long k;
int n;
string P(int n,unsigned long long id)
{
string ans;
if(n==1)
{
if(id==0) return "0";
else return "1";
}
if(id>=(1ll<<(n-1)))
{
ans="1"+P(n-1,(1ll<<n)-1-id);
}
else ans="0"+P(n-1,id);
return ans;
}
int main()
{
cin>>n>>k;
cout<<P(n,k);
return 0;
}