下载数据自测是对的,但测评机就想让我爆0
查看原帖
下载数据自测是对的,但测评机就想让我爆0
162017
regime楼主2020/9/6 14:16
#include<bits/stdc++.h>
using namespace std;
int n;
char s[200001],last[200001],ch;
int main(){
//	freopen("P1957 口算练习题.in","r",stdin);
//	freopen("P1957 口算练习题.out","w",stdout);
	ch=getchar(),getchar();
	n=ch-'0';
	for(int l=1;l<=n;l++){
		gets(s);
		int x=0,y=0,len=strlen(s);
		if(s[0]>='0'&&s[0]<='9'){
			int i;
			for(i=0;s[i]>='0'&&s[i]<='9';i++)x=x*10+(s[i]-'0');
			i++;
			while(i<len){
				y=y*10+(s[i]-'0');
				i++;
			}
//			printf("%d %d\n",x,y);
		}
		else{
			int i;
			for(i=2;s[i]>='0'&&s[i]<='9';i++)x=x*10+(s[i]-'0');
			i++;
			while(i<len){
				y=y*10+(s[i]-'0');
				i++;
			}
//			printf("%d %d\n",x,y); 
		}	
//		printf("%d %d\n",x,y);
		int k;
		if(s[0]=='a')printf("%d+%d=%d\n",x,y,x+y),k=x+y;
		if(s[0]=='b')printf("%d-%d=%d\n",x,y,x-y),k=x-y;
		if(s[0]=='c')printf("%d*%d=%d\n",x,y,x*y),k=x*y;
		if(s[0]>='0'&&s[0]<='9'){
			if(last[0]=='a')printf("%d+%d=%d\n",x,y,x+y),k=x+y;
			if(last[0]=='b')printf("%d-%d=%d\n",x,y,x-y),k=x-y;
			if(last[0]=='c')printf("%d*%d=%d\n",x,y,x*y),k=x*y;
		}
		int ans;
		if(s[0]>='a')ans=len-1;
		else ans=len+1; 
		if(k<0)ans++,k*=-1;
		while(k>0)k/=10,ans++;
		if(l==n)printf("%d",ans);
		else printf("%d\n",ans);
		for(int i=0;i<len;i++)last[i]=s[i];
	}	
	return 0;
} 
2020/9/6 14:16
加载中...