纯暴力解法ac
查看原帖
纯暴力解法ac
576802
emt0re0楼主2021/10/28 23:52

在历经n个小时的修改和调试后, 我用纯暴力算法ac了这道题。 萌新不会算法,所以只能用暴力ac。 以下是代码,希望大佬能给我点建议。

#include<iostream>
#include<cstring>
using namespace std;
int main()
{   
    char a[100];
    int g;
    int n;
    cin>>a;
    int p=strlen(a);
    for(int i=0;a[i]!='\0';i++)
    {
		if(a[i]=='.')
		{
			n=2;
			g=i;
			break;
		}
		else if(a[i]=='/')
		{
			n=3;
			g=i;
			break;
		}
		else if(a[i]=='%')
		{
			n=4;
			break;
		}
		else 
		{
		   n=1;
		}
	}
	if(n==1)
	{
		if(p==1&&a[0]=='0') cout<<0;
		else
		{
			if(a[p-1]!='0') 
			{
				for(int i=p-1;i>=0;i--)
				cout<<a[i];
			}		
			else
			{
		    	int j=1;
			for(int i=p-1;a[i]=='0'&&a[i-1]=='0';i--) j++;
			for(int i=p-j-1;i>=0;i--)
			cout<<a[i];
			}
			}
	}
	if(n==2)
	{
		if(g==1&&a[0]=='0') cout<<0;
				else
				{
					if(a[g-1]!='0') 
					{
						cout<<a[g-1];
					}		
				for(int i=g-2;i>=0;i--)
				{
					if(a[i]!='0'||a[i+1]!='0')
					cout<<a[i];
				}
				}
		cout<<'.' ;
		if(a[g+1]=='0'&&p-1-g==1) cout<<0;
		else 
		{
			int j=0;
			if(a[g+1]=='0') j++;
			for(int i=g+1;a[i]=='0'&&a[i+1]=='0';i++) j++;
			for(int i=p-1;i>=g+1+j;i--)
			{
				cout<<a[i];
			}
		}
			
	}
    if(n==3)
    {
    	if(p-1-g==1&&a[g+1]=='0') return 0;
		if(g==1&&a[0]=='0') cout<<0;
				else
				{
					if(a[g-1]!='0') 
					{
						for(int i=g-1;i>=0;i--)
						cout<<a[i];
					}		
					else
					{
				    	int j=1;
					for(int i=g-1;a[i]=='0'&&a[i-1]=='0';i--) j++;
					for(int i=g-j-1;i>=0;i--)
					cout<<a[i];
					}
					}
				cout<<'/';
				if(p-1-g==1&&a[g+1]=='0') return 0;
								else
								{
									if(a[p-1]!='0') 
									{
										for(int i=p-1;i>=g+1;i--)
										cout<<a[i];
									}		
									else
									{
								    	int j=1;
									for(int i=p-1;a[i]=='0'&&a[i-1]=='0';i--) j++;
									for(int i=p-j-1;i>=g+1;i--)
									cout<<a[i];
									}
									}
	}
	if(n==4)
	{
		p=p-1;
		if(p==1&&a[0]=='0') cout<<0;
				else
				{
					if(a[p-1]!='0') 
					{
						cout<<a[p-1];
					}		
				for(int i=p-2;i>=0;i--)
				{
					if(a[i]!='0'||a[i+1]!='0')
					cout<<a[i];
				}
				}
				cout<<'%';
	}
	return 0;
}
2021/10/28 23:52
加载中...