数字反转求助
查看原帖
数字反转求助
185348
Zhe8468楼主2020/8/13 11:51
#include <bits/stdc++.h>
using namespace std;
int FIND(string str){
	for(int i=0;i<str.length();i++){
		if(str[i]=='%') return 1;
		if(str[i]=='/') return 2*10+i;
		if(str[i]=='.') return 3*10+i;
	}
	return 4;
}
int main()
{
	string str;
	cin>>str;
	if(FIND(str)==1){
		bool flag = false;
		for(int i=str.length()-2;i>=0;i--){
			if(str[i]-'0'==0&&flag == true) cout<<str[i];
			else if(str[i]-'0'!=0){
				flag = true;
				cout<<str[i];
			}
		}	
		cout<<"%"<<endl;
	}
	else if(FIND(str)/10==2){
		bool flag = false;
		for(int i=FIND(str)%10-1;i>=0;i--){
			if(str[i]-'0'==0&&flag == true) cout<<str[i];
			else if(str[i]-'0'!=0){
				flag = true;
				cout<<str[i];
			}
		}
		cout<<"/";
		flag = false;
		for(int i=str.length()-1;i>=FIND(str)%10+1;i--){
			if(str[i]-'0'==0&&flag == true) cout<<str[i];
			else if(str[i]-'0'!=0){
				flag = true;
				cout<<str[i];
			}
		}
	}
	else if(FIND(str)/10==3){
		bool flag = false;
		for(int i=FIND(str)%10-1;i>=0;i--){
			if(str[i]-'0'==0&&flag == true) cout<<str[i];
			else if(str[i]-'0'!=0){
				flag = true;
				cout<<str[i];
			}
		}
		cout<<".";
		int p = FIND(str)%10+1;
		while(str[p]-'0'==0) p++;
		for(int i=str.length()-1;i>=p;i--){
			if(str[i]-'0'==0&&flag == true) cout<<str[i];
			else if(str[i]-'0'!=0){
				flag = true;
				cout<<str[i];
			}
		}
	}
	else if(FIND(str)==4){
		bool flag = false;
		for(int i=str.length()-1;i>=0;i--){
			if(str[i]-'0'==0&&flag == true) cout<<str[i];
			else if(str[i]-'0'!=0){
				flag = true;
				cout<<str[i];
			}
		}
	}
	
	return 0;
}

2020/8/13 11:51
加载中...