还是90分
查看原帖
还是90分
1167566
lizicl楼主2025/1/4 21:49

我没有优化!我没有优化!

code:

#include<bits/stdc++.h>
using namespace std;
int main(){
	string s;
	cin>>s;
	bool xs,fs,bfs;
	if(s.find(".")==-1){
		xs=0;
	}
	else{
		xs=1;
	}
	if(s.find("/")==-1){
		fs=0;
	}
	else{
		fs=1;
	}
	if(s.find("%")==-1){
		bfs=0;
	}
	else{
		bfs=1;
	}
	
	string x="";
	if(xs==0&&fs==0&&bfs==0)/*整数*/{
		for(int i=s.size()-1;i>=0;i--){
			x+=s[i];
		}
	}
	while(x.size()>1&&x[0]=='0'){
		x.erase(0,1);
	}
	cout<<x;
	
	if(xs==1&&fs==0&&bfs==0){
		int t=s.find(".");
		string b="",c="";
		string b2="",c2="";
		for(int i=0;i<s.size();i++){
			if(i<t){
				b+=s[i];
			}
			if(i>t){
				c+=s[i];
			}
		}
		while(b.size()>1&&b[b.size()-1]=='0'){
			b.erase(b.size()-1,1);
		}
		for(int i=b.size()-1;i>=0;i--){
			b2+=b[i];
		}
		while(c.size()>1&&c[0]=='0'){
			c.erase(0,1);
		}
		for(int i=c.size()-1;i>=0;i--){
			c2+=c[i];
		}
		cout<<b2<<"."<<c2;
	}
	
	if(xs==0&&fs==1&&bfs==0){
		int t=s.find("/");
		string q="",p="";
		string q2="",p2="";
		for(int i=0;i<s.size();i++){
			if(i<t){
				q+=s[i];
			}
			if(i>t){
				p+=s[i];
			}
		}
		while(q.size()>1&&q[q.size()-1]=='0'){
			q.erase(p.size()-1,1);
		}
		for(int i=q.size()-1;i>=0;i--){
			q2+=q[i];
		}
		while(p.size()>1&&p[0]=='0'){
			p.erase(0,1);
		}
		for(int i=p.size()-1;i>=0;i--){
			p2+=p[i];
		}
		cout<<q2<<"/"<<p2;
	}
	
	string f="";
	int r=s.size()-2;
	if(xs==0&&fs==0&&bfs==1){
		for(int i=r;i>=0;i--){
			f+=s[i];
		}
	while(f.size()>1&&f[0]=='0'){
		f.erase(0,1);
	}
	cout<<f<<"%";
}
}

为啥只有90>=<

2025/1/4 21:49
加载中...