本地可以过第一个测试点,但是前五个点全都RE是怎么回事QAQ
查看原帖
本地可以过第一个测试点,但是前五个点全都RE是怎么回事QAQ
573535
PolarisAB楼主2021/10/7 09:26
#include<iostream>
#include<cstring>
#include<math.h>
#include<sstream>
#include<cstdio>
#include<cstdlib>
#include<stdio.h>
#include<string>
#include<istream>

using namespace std;

int main(){
	
	string s, s1;
	
	unsigned long long l, mod, pos, p;
	
	bool flag;
	
	getline(cin, s);
	
	l = s.length();
	
	for(int i = 0; i <= l - 1; ++i)
	{
		if(s[i] < '0' || s[i] > '9')
		{
			pos = i;
			flag = 1;
			if(s[i] == '.')
			{
				mod = 2;
			}
			else if(s[i] == '/')
			{
				mod = 3;
			}
			else if(s[i] == '%')
			{
				mod = 4;
			}
		}
	}
	
	if(!flag)
	{
		mod = 1;
	}
	
	switch(mod)
	{
		case 1 : 
			flag = 0;
			for(int i = 0; i <= l - 1; ++i)
			{
				s1[i] = s[l - i - 1];
				if(s1[i] >= '1' && s1[i] <= '9')
				{
					flag = 1;
				}
				if(flag)
				{
					printf("%c", s1[i]);
				}
			}	
			if(!flag)
			{
				printf("0");
			}
			break;
		
		case 2 : 
			flag = 0;
			for(int i = 0; i <= pos - 1; ++i)
			{
				s1[i] = s[pos - i - 1];
				if(s1[i] >= '1' && s1[i] <= '9')
				{
					flag = 1;
				}
				if(flag)
				{
					cout << s1[i];
				}
			}	
			if(!flag)
			{
				cout << '0';
			}
			cout << '.';
			flag = 0;
			for(int i = pos + 1; i <= l - 1; ++i)
			{
				s1[l - i + pos] = s[i];
			}	
			for(int i = l - 1; i >= pos + 1; --i)
			{
				if(s1[i] >= '1' && s1[i] <= '9')
				{
					p = i;
					break;
				}
			}
			
			if(p < pos + 1)
			{
				cout << '0';
			}
			else
			{
				for(int i = pos + 1; i <= p; ++i)
				{
					cout << s1[i];
				}
			}
			break;
			
		case 3 : 
			flag = 0;
			for(int i = 0; i <= pos - 1; ++i)
			{
				s1[i] = s[pos - i - 1];
				if(s1[i] >= '1' && s1[i] <= '9')
				{
					flag = 1;
				}
				if(flag)
				{
					printf("%c", s1[i]);
				}
			}	
			if(!flag)
			{
				printf("0");
			}
			printf("/");
			flag = 0;
			for(int i = pos + 1; i <= l - 1; ++i)
			{
				s1[i] = s[l - i + pos];
				if(s1[i] >= '1' && s1[i] <= '9')
				{
					flag = 1;
				}
				if(flag)
				{
					printf("%c", s1[i]);
				}
			}	
			break;
			
		case 4 :
			flag = 0;
			for(int i = 0; i <= l - 2; ++i)
			{
				s1[i] = s[l - i - 2];
				if(s1[i] >= '1' && s1[i] <= '9')
				{
					flag = 1;
				}
				if(flag)
				{
					printf("%c", s1[i]);
				}
			}	
			if(!flag){
				printf("0");
			}
			printf("%%");
			break;
			
	}
		
	return 0;
}


2021/10/7 09:26
加载中...