95分麻了,最后一个测试点。
查看原帖
95分麻了,最后一个测试点。
136033
an_xi楼主2021/12/29 21:33

下载次数不够了qaq

#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 1010
using namespace std;
char x[maxn],y[maxn];
int main(){
	scanf("%s",x);
	if(strlen(x)==1&&x[0]=='0'){
		cout<<"0";
		return 0;
	}
	int len=strlen(x);
	int a,b,i=0,flag=0;
	while(x[i]!='\0'){
		if(x[i]=='.'){
			flag=1;
			break;
		}
		if(x[i]=='/'){
			flag=2;
			break;
		}
		if(x[i]=='%'){
			flag=3;
			break;
		}
		i++;
	}
	if(flag==0){
		while(x[len-1]=='0')	len--;
		for(int i=len-1;i>=0;i--){
			cout<<x[i];
		}
		return 0;
	}
	if(flag==1){
		sscanf(x,"%d.%d",&a,&b);
		int m=1;
		if(a==0)	cout<<"0";
		while(a){
			if(a==0){
				printf("0");
				break;
			}
			if(a%10==0&&m!=0){
				a/=10;
				continue;
			}
			else{
				m=0;
				printf("%d",a%10);
				a/=10;
			}
		}
		printf(".");
		m=1;
		if(b==0)	cout<<"0";
		while(b)
		{
			if(b==0){
				printf("0");
				break;
			}
			if(b%10==0&&m!=0){
				b/=10;
				continue;
			}
			else{
				m=0;
				printf("%d",b%10);
				b/=10;
			}
		}
		return 0;
	}
	if(flag==2){
		sscanf(x,"%d/%d",&a,&b);
		int m=1;
		if(a==0)	cout<<"0";
		while(a){
			if(a==0){
				printf("0");
				break;
			}
			if(a%10==0&&m!=0){
				a/=10;
				continue;
			}
			else{
				m=0;
				printf("%d",a%10);
				a/=10;
			}
		}
		printf("/");
		m=1;
		if(b==0)	cout<<"0";
		while(b)
		{
			if(b%10==0&&m!=0){
				b/=10;
				continue;
			}
			else{
				m=0;
				printf("%d",b%10);
				b/=10;
			}
		}
		return 0;
	}
	if(flag==3){
			while(x[len-2]=='0')	len--;
		for(int i=len-2;i>=0;i--){
			cout<<x[i];
		}
		cout<<"%";
		return 0;
	}
	return 0;
}
2021/12/29 21:33
加载中...