95分求助!
查看原帖
95分求助!
935829
QiuOutlook楼主2024/3/31 16:37

95分
R153740580 #08 WA
代码如下:

#include<bits/stdc++.h>
using namespace std;
string fz(string y,int begin,int end);
int main(){
	string num;
	int l=-1;
	cin>>num;
	int size=num.size();
	bool flag=0;
	for(int i=0;i<size;i++){
		if(num[i]=='.'){
			num=fz(num,0,i)+'.'+fz(num,i+1,size);
			l=2;
			flag=!flag;
			break;
		} 
		if(num[i]=='/'){
			num=fz(num,0,i)+'/'+fz(num,i+1,size);
			l=3;
			flag=!flag;
			break;
		} 
	}
	if(!flag){
		num=fz(num,0,size);
		l=(num[0]=='%'?4:1);
	}
	if(l==1){
		bool flag=0;
		for(int i=0;i<size;i++){
			if(!flag&&num[i]=='0') continue;
			if(!flag&&num[i]!='0') flag=!flag;
			cout<<num[i];
		}
		if(!flag) cout<<0;
	}
	if(l==2){
		bool flag=0;
		int i=0;
		for(;num[i]!='.';i++){
			if(!flag&&num[i]=='0') continue;
			if(!flag&&num[i]!='0') flag=!flag;
			cout<<num[i];
		}
		if(!flag) cout<<0;
		cout<<'.';
		i+=1;
		flag=0;
		for(;i<size;i++){
			if(num[i]=='0'){
				for(int j=i;j<size;j++){
					if(num[j]!='0'){
						flag=1;
						break;
					}
				}
				if(!flag) break;
				cout<<'0';
			}
			else cout<<num[i];
		}
		if(num[i-1]=='.') cout<<'0';
	}
	if(l==3){
		bool flag=0;
		int i=0;
		for(;num[i]!='/';i++){
			if(!flag&&num[i]=='0') continue;
			if(!flag&&num[i]!='0') flag=!flag;
			cout<<num[i];
		}
		if(!flag) cout<<0;
		cout<<'/';
		i+=1;
		flag=0;
		for(;i<size;i++){
			if(!flag&&num[i]=='0') continue;
			if(!flag&&num[i]!='0') flag=!flag;
			cout<<num[i];
		}
	}
	if(l==4){
		bool flag=0;
		for(int i=1;i<size;i++){
			if(!flag&&num[i]=='0') continue;
			if(!flag&&num[i]!='0') flag=!flag;
			cout<<num[i];
		}
		if(!flag) cout<<0;
		cout<<'%';
	}
	return 0;
}
string fz(string y,int begin,int end){
	string b="";
	for(int i=end-1;i>=begin;i--){
		b+=y[i];
	}
	b+="\0";
	return b;
}
2024/3/31 16:37
加载中...