85分求调
查看原帖
85分求调
757101
junee楼主2023/10/11 17:25
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
unsigned long long n,k;
int x[66];
void gray(unsigned long long l,int m,int f,int t){
	if(t==n)return;
	unsigned long long mid=l+pow(2,m-1)-1;
	if(k>mid){
		if(f==1)x[t]=0;
		else x[t]=1;
		gray(mid+1,m-1,1,t+1);
	}
	else{
		if(f==1)x[t]=1;
		else x[t]=0;
		gray(l,m-1,0,t+1);
	}
}
int main(){
	cin>>n>>k;
	gray(0,n,0,0);
	for(int i=0;i<n;i++){
		cout<<x[i];
	}
	
	return 0;
}
2023/10/11 17:25
加载中...