85分求调
查看原帖
85分求调
826079
Autumn_Rain楼主2023/10/6 10:21

WA了3个点,不知道哪里错了

#include<bits/stdc++.h>
using namespace std;
int n,len,ans[65];long long k;
void solve(int a,long long b){
	if(a==1){
		if(b==0)ans[++len]=0;
		if(b==1)ans[++len]=1;
		return;
	}
	if((b+1)<=pow(2,a-1)){
		solve(a-1,b);
		ans[++len]=0;
		return;
	}
	else{
		solve(a-1,pow(2,a)-b-1);
		ans[++len]=1;
		return;
	}
}
int main(){
	ios::sync_with_stdio(0);
	cin>>n>>k;solve(n,k);
	for(int i=len;i>=1;i--)cout<<ans[i];
	return 0;
}
2023/10/6 10:21
加载中...