95分,只有#5显示too short ,求助
查看原帖
95分,只有#5显示too short ,求助
223333
propitious楼主2024/1/27 21:41
#include<bits/stdc++.h>
using namespace std;
int main()
{
	char s[102];
	cin>>s;
	int l=strlen(s),flag=1,j=0,k=0;
	for(int i=0;i<l;i++)
	{
		if(s[i]=='.') flag=2;
		if(s[i]=='/') flag=3;
		if(s[i]=='%') flag=4;
	}
	
	if(flag==1){
		for(int i=l-1;i>=0;i--)
		{
			if(s[i]=='0'&&s[l-1]=='0'){
				k++;
				if(s[i-1]!='0')
				break;
			}
		}
		for(int i=l-1-k;i>=0;i--)
		cout<<s[i];
	}
	
	if(flag==2){
		for(int i=0;i<l;i++)
		if(s[i]=='.') j=i;
		if(j==1&&s[0]=='0') cout<<"0";
		else{
		for(int i=j-1;i>=0;i--)
		{
			if(s[i]=='0'&&s[j-1]=='0'){
				k++;
				if(s[i-1]!='0')
				break;
			}
		}
		for(int i=j-1-k;i>=0;i--)
		cout<<s[i];}
		cout<<".";
		k=0;
		for(int i=l-1;i>j;i--)
		{
			if(s[i]=='0'&&s[l-1]=='0'){
				k++;
				if(s[i-1]!='0')
				break;
			}
		}
		int x=0;
		if(l-j==2&&s[l-1]=='0') cout<<"0";
		else{
		for(int i=j+1;i<l;i++)
		{
			if(s[i]=='0'&&s[j+1]=='0'){
				x++;
				if(s[i+1]!='0')
				break;
			}
		}
		for(int i=l-1-k;i>j+x;i--)
		cout<<s[i]; }
	}
	
	if(flag==3){
		for(int i=0;i<l;i++)
		if(s[i]=='/') j=i;
		if(j==1&&s[0]=='0') cout<<"0";
		else{
		for(int i=j-1;i>=0;i--)
		{
			if(s[i]=='0'&&s[j-1]=='0'){
				k++;
				if(s[i-1]!='0')
				break;
			}
		}
		for(int i=j-1-k;i>=0;i--)
		cout<<s[i];}
		cout<<"/";
		k=0;
		for(int i=l-1;i>j;i--)
		{
			if(s[i]=='0'&&s[l-1]=='0'){
				k++;
				if(s[i-1]!='0')
				break;
			}
		}
		for(int i=l-1-k;i>j;i--)
		cout<<s[i]; 
	}
	
	if(flag==4){
		for(int i=l-2;i>=0;i--)
		{
			if(s[i]=='0'&&s[l-2]=='0')
			{
				j++;
				if(s[i-1]!='0')
				break;
			}
		}
		if(s[0]=='0') cout<<"0";
		else{
		for(int i=l-j-2;i>=0;i--)
		cout<<s[i];}
		cout<<"%";
	}
} 
2024/1/27 21:41
加载中...