为什么80分?!
查看原帖
为什么80分?!
1371338
lce11451410086楼主2024/12/5 21:06
#include<bits/stdc++.h>
using namespace std;
char c[25000];
int main(){
	int t;
	scanf("%d",&t);
	char last;
	for(int sssss=1;sssss<=t;sssss++){
		if(sssss==1){
			
			getchar();
		}
		cin.getline(c,15);
		int len=2;
		char fu;
		if(c[0]>='a'&&c[0]<='c'){
			if(c[0]=='a'){
				fu='+';
			}else if(c[0]=='b'){
				fu='-';
			}else{
				fu='*';
			}
			int num1=0,num2=0;
			int s=0;
			for(int i=2;c[i]!=' ';i++){
				num1=num1*10+(c[i]-'0');
				s=i;
			}
			for(int i=s+2;c[i]!='\0';i++){
				num2=num2*10+int(c[i]-'0');
			}
			int sum=0;
			if(fu=='+'){
				sum=num1+num2;
			}else if(fu=='-'){
				sum=num1-num2;
			}else if(fu=='*'){
				sum=num1*num2;
			}
			if(sum<0){
				len++;
			}
			int f=abs(sum);
			int a=num1,b=num2;
			for(int i=1;a!=0;i++,len++){
				a/=10;
			}
			for(int i=1;b!=0;i++,len++){
				b/=10;
			}
			for(int i=1;f!=0;i++,len++){
				f/=10;
			}
			printf("%d%c%d=%d\n%d\n",num1,fu,num2,sum,len);
		}else{
			int num1=0,num2=0,s=0;
			for(int i=0;c[i]!=' ';i++){
				num1=num1*10+(c[i]-'0');
				s=i;
			}
			for(int i=s+2;c[i]!='\0';i++){
				num2=num2*10+int(c[i]-'0');
			}
			int sum=0;
			if(last=='+'){
				sum=num1+num2;
			}else if(last=='-'){
				sum=num1-num2;
			}else if(last=='*'){
				sum=num1*num2;
			}
			if(sum<0){
				len++;
			}
			int f=abs(sum);
			int a=num1,b=num2;
			for(int i=1;a!=0;i++,len++){
				a/=10;
			}
			for(int i=1;b!=0;i++,len++){
				b/=10;
			}
			for(int i=1;f!=0;i++,len++){
				f/=10;
			}
			printf("%d%c%d=%d\n%d\n",num1,fu,num2,sum,len);
			last=' ';
		}
		last=fu;
	}
	return 0;
}
2024/12/5 21:06
加载中...