50pts help
查看原帖
50pts help
338147
01bit楼主2021/1/6 21:37
#include<cstdio>
#define ull unsigned long long
using namespace std;
void bwrite(ull x,int len){
	int m=1<<len-1;
	while(len--){
		if(x&m)putchar('1');
		else putchar('0');
		m>>=1;
	}
}
ull grey(int n,ull k){
	if(n==1)return k;
	else if(k<(1<<n-1))return grey(n-1,k);
	else return (1<<n-1)+grey(n-1,(1<<n)-k-1);
}
int n;ull k;
int main(){
	scanf("%d%ull",&n,&k);
	bwrite(grey(n,k),n);
	return 0;
}
2021/1/6 21:37
加载中...