单独加减乘除和题目样例都没问题,但3WA 7TLE
查看原帖
单独加减乘除和题目样例都没问题,但3WA 7TLE
1115386
dingxiangqian楼主2024/4/19 18:48
//单独加减乘除和题目样例都没问题,但3WA 7TLE
#include<iostream>
using namespace std;
int a[5000000]={0}; 
char num[5000000];
char asc[5000000];
int n,m;
int main()
{
	cin>>n>>m;//输入位数和运算数 
	for(int i=0;i<n;i++)
	{
		cin>>num[i];//输入数 
	}
	for(int i=0;i<m;i++)
	{
		cin>>asc[i];//输入运算符号 
	}
	for(int i=0;i<n;i++)
	{
		a[i]=num[i]-48;//把每位数字转换 
	}
	for(int i=0;i<m;i++)//开始判断 
	{
		if(asc[i]=='+')//如果为加 
		{
			a[n-1]++;
			for(int j=n-1;j>=0;j--)//判断进位 
			{
				if(a[j]>=2)
				{
					a[j-1]++;
					a[j]=0;
					if(a[j-1]<2)
					{
						break;
					}
				}
			}			
		}
	    if(asc[i]=='-')//如果为减 
		{	
			a[n-1]-=1;
			for(int j=n-1;j>=0;j--)//判断退位 
			{
				if(a[j]<0)
				{
					a[j]=1;
					a[j-1]-=1;
					if(a[j-1]>0)
					{
						break;
					}
				}	
			}	
		}
		if(asc[i]=='*')//如果为乘 
		{
			n+=1;
		}
		if(asc[i]=='/')//如果为除 
		{
			n-=1;
		}
	}	
	for(int i=0;i<n;i++)//输出结果 
	{
		cout<<a[i];
	}
	return 0;
}
2024/4/19 18:48
加载中...