为什么输出的顺序不对都算错?
查看原帖
为什么输出的顺序不对都算错?
552642
num1130楼主2022/8/30 11:49

求大佬帮忙看一下

#include<bits/stdc++.h>
using namespace std;
int n;
string ans;
void mi(int m){
	int i=0;
	int l=m;
	while(l!=0){
		if(l%2==1){
			if(i==0||i==1||i==2){
				if(i==1){
					ans+="2+";
				}else if(i==0){
					ans+="2(0)+";
				}else{
					ans+="2(2)+";
				}
			}else{
				ans+="2(";
				mi(i);
				ans+=")+";
			}
		}
		i++;
		l=l/2;
	} 
	return ;
}
int main() {
	cin>>n;
	mi(n);
	int uj=ans.length();
	for(int i=0;i<uj;i++){
		if(ans[i]=='+'&&ans[i-1]=='('||ans[i]=='+'&&ans[i+1]==')'){
			ans[i]=' ';
		}
	}
	for(int i=0;i<uj-1;i++){
		if(ans[i]==' '){
			continue;
		}else{
			cout<<ans[i];
		}
	}
	return 0;
} 
2022/8/30 11:49
加载中...