全WA,求助Orz
查看原帖
全WA,求助Orz
377942
wuyadong7楼主2024/6/21 10:44
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
int a[20];
void init(){
	a[0]=1;
	for(int i=1;i<=20;i++) a[i]=a[i-1]*2;
}
void dfs(int i){
	if(i==3){
		printf("2+2(0)");
		return ;
	} 
	if(i==2){
		printf("2");
		return ;
	}
	if(i==1){
		printf("2(0)");	
		return ;
	}
	int cnt=20;
	while(a[cnt]>i) cnt--;
	if(cnt==1) printf("2");
	else{
		printf("2(");
		dfs(cnt);
		printf(")");
	}
	if(a[cnt]!=i){
		printf("+");
		dfs(i-a[cnt]);
	}
	return ;
}
int main(){
	init();
	scanf("%d",&n);
	dfs(n);
	return 0;
}
2024/6/21 10:44
加载中...