65分,求助!
查看原帖
65分,求助!
1024403
AVL_DORT_MCI_BAR_CHN楼主2023/8/5 10:09

65分,求助!

#include<bits/stdc++.h>
using namespace std;
string s;
int l;
int reversal(int n){
	int a=0;
	while(n){
		a=a*10+n%10;
		n/=10;
	}
	return a;
}
void decimal(int i){
	bool f=0;
	int sum=0;
	for(int j=i-1;j>=0;j--){
		if(f==0&&s[j]=='0') continue;
		f=1;
		sum=sum*10+(s[j]-'0');
	}
	cout<<sum;
	sum=0;
	f=0;
	for(int j=i+1;j<l;j++){
		if(f==0&&s[j]=='0') continue;
		f=1;
		sum=sum*10+(s[j]-'0');
	}
	if(sum!=0) cout<<s[i];
	if(sum!=0) cout<<reversal(sum);
}
void percentage(int i){
	long long f=0;
	for(int j=0;j<i;j++){
		f=f*10+(s[j]-'0');
	}
	cout<<reversal(f);
	cout<<"%";
}
int main(){
	int i;
	cin>>s;
	l=s.size();
	for(i=0;i<l;i++){
		if(s[i]>='0'&&s[i]<='9') continue;
		break;
	}
	if(i==l){
		long long f=0;
		for(int j=0;j<l;j++){
			f=f*10+(s[j]-'0');
		}
		cout<<reversal(f);
		return 0;
	}
	else{
		if(s[i]=='.'||s[i]=='/'){
			decimal(i);
		}
		if(s[i]=='%') percentage(i);
	}
	return 0;
}
2023/8/5 10:09
加载中...