70分求助
查看原帖
70分求助
766106
Tr_Sup楼主2022/10/3 19:55
#include<bits/stdc++.h>
using namespace std;
int z,x,f,b;
int main(){
	string s;
	cin>>s; 
	for(int i=0;i<s.size();i++){
		if(s[i]=='.') x=1;
		if(s[i]=='/') f=1;
		if(s[i]=='%') b=1; 
	}
	if(!x&&!f&&!b) z=1;
	if(z){
		int flag=0;
		for(int i=s.size()-1;i>=0;i--){
			if(s[i]=='0'&&flag==0){
				continue;
			}
			if(s[s.size()-1]!='0') flag=1;
			if(s[i+1]=='0') flag=1;
			cout<<s[i];
		}
		return 0;
	}
	if(!z){
		int m=0;
		int t=0,xx=1,ll;
		for(int i=0;i<s.size();i++){
			if(s[i]<'0'||s[i]>'9'){
				m=i;
				t=1;
				ll=m+1;
				continue;
			}
			if(t&&xx){
				if(s[m+1]=='0'){
					if(s[i]!='0'){
						xx=0;
						ll=i;
					}
				}
			}
		}
		int flag=0; 
		for(int i=m-1;i>=0;i--){
			if(s[i]=='0'&&flag==0){
				continue;
			}
			if(s[m-1]!='0') flag=1;
			if(s[i+1]=='0') flag=1;
			cout<<s[i];
		} 
		flag=0;
		if(x) cout<<'.';
		if(f) cout<<'/';
		if(b) cout<<'%';
		for(int i=s.size()-1;i>=ll;i--){
			if(s[i]=='0'&&flag==0){
				continue;
			}
			if(s[s.size()-1]!='0') flag=1;
			if(s[i+1]=='0') flag=1;
			cout<<s[i];
		}
	} 
}
2022/10/3 19:55
加载中...