开了unsigned long long的95分递归
查看原帖
开了unsigned long long的95分递归
228087
woshixingyu楼主2020/11/1 21:48
#include<bits/stdc++.h>
using namespace std;
int n;
unsigned long long k;

unsigned long long find(int n,unsigned long long k){
	unsigned long long ans=1;
	for(int i=1;i<=n;i++){
		ans=ans*2;
	}	
	if(k*2>=ans)
		return ans-1;
	else
		return -1;
}

string dg(int n,unsigned long long k){
	string a;
	//cout<<n<<' '<<k<<endl;
	//system("Pause");
	if(n==1){
		if(k==0)
			a='0';
		else
			a='1';
	}	
	else if(find(n,k)!=-1){	
		
		a='1'+dg(n-1,find(n,k)-k);
	}
	else{
		
		a='0'+dg(n-1,k);
	}
	return a;
}


int main(){
	cin>>n>>k;
	cout<<dg(n,k);
	return 0;
}
2020/11/1 21:48
加载中...