50pts求助
查看原帖
50pts求助
240400
ABlyh楼主2021/7/8 14:08
#include<iostream>
using namespace std;
typedef unsigned long long ull;
ull f(ull n,ull k)
{
	if(n==1)
	{
		if(k==1)
		{
			return 0;
		}
		else
		{
			return 1;
		}
	}
	if(k>(1<<n-1))
	{
		return (1<<(n-1))+f(n-1,(1<<n)+1-k);
	}
	else
	{
		return f(n-1,k);
	}
}
int main()
{
	ull n,k;
	cin>>n>>k;
	k++;
	ull aa=f(n,k);
	string ans="";
	for(int i=1;i<=n;i++)
	{
		ans[i]=(aa&1)+'0';
		aa>>=1;
	}
	for(int i=n;i>=1;i--)
	{
		cout<<ans[i];
	}
	return 0;
}
2021/7/8 14:08
加载中...