蒟蒻请求 debug P1553
查看原帖
蒟蒻请求 debug P1553
1340011
yufh楼主2025/1/31 20:42

90分求助!!!

测试点#13 和 #15有问题

代码如下(写de有点乱):

#include <bits/stdc++.h> //万能头文件,不需要多说什么 
using namespace std; 

void integer(string str){//处理整数 
	reverse(str.begin(),str.end());
	int i=0;
	while(i<str.size()-1&&str[i]=='0') i++;
	for(i;i<str.size();i++) cout<<str[i];
}
void float_double(string str){//处理小数 
	int pos=str.find(".");
	string str1=str.substr(0,pos),str2=str.substr(pos+1,11);
	reverse(str1.begin(),str1.end());reverse(str2.begin(),str2.end());
	int i=0;
	while(i<str1.size()-1&&str1[i]=='0') i++;
	for(i;i<str1.size();i++) cout<<str1[i];
	i=str2.size()-1;
	cout<<'.';
	while(i>1&&str2[i]=='0') i--;
	for(int j=0;j<i+1;j++) cout<<str2[j];
} 
void percent(string str){
	str=str.substr(0,str.size()-1);
	integer(str);
	cout<<'%';
}
void fraction(string str){
	int pos=str.find("/");
	string str1=str.substr(0,pos),str2=str.substr(pos+1,11);
	reverse(str1.begin(),str1.end());reverse(str2.begin(),str2.end());
	int i=0;
	while(i<str1.size()-1&&str1[i]=='0') i++;
	for(i;i<str1.size();i++) cout<<str1[i];
	i=str2.size()-1;
	cout<<'/';
	while(i>1&&str2[i]=='0') i--;
	for(int j=0;j<i+1;j++) cout<<str2[j];
}
int main() 
{
	string s;
	cin>>s;
	int stringlenFor_s=s.size();
	int pos1=s.find("."),pos2=s.find("/");
	bool check2=pos1!=-1,check3=pos2!=-1,check4=s[stringlenFor_s-1]=='%',check1=(!check2)&&(!check3)&&(!check4);
	if(check1)
	{
		integer(s);
	}
	else if(check2)
	{
		float_double(s);
	}
	else if(check4)
	{
		percent(s);
	}
	else if(check3)
	{
		fraction(s);
	}
	return 0;
}
2025/1/31 20:42
加载中...