0分求助
查看原帖
0分求助
892625
WangYinxiAlex楼主2023/9/12 18:19
#include<iostream>
#include<algorithm>
using namespace std;
int m(int y){
	int l=0;
	while(y){
		l++;
		y/=10;
	}
	return l;
}
int main(){
	char a;
	int n=0;
	string n1;
	getline(cin,n1);
	for(int i=0;i<n1.size();i++){
		n=n*10+(n1[i]-'0');
	}
	for(int i=1;i<=n;i++){
		string s;
		long long r[2]={0,0};
		int k=0;
		getline(cin,s);
		if(s[0]>='0'&&s[0]<='9'){
			for(int j=0;j<s.size();j++){
				if(s[j]==' '){
					k++;
					continue;
				}
				r[k]=r[k]*10+s[j]-'0';
			}
		}
		else{
			a=s[0];
			for(int j=2;j<s.size();j++){
				if(s[j]==' '){
					k++;
					continue;
				}
				r[k]=r[k]*10+s[j]-'0';
			}
		}
		int l=m(r[0])+m(r[1])+2;
		switch(a){
			case 'a':{
				cout<<r[0]<<"+"<<r[1]<<"="<<r[0]+r[1]<<endl;
				l+=m(r[0]+r[1]);
				break;
			}
			case 'b':{
				cout<<r[0]<<"-"<<r[1]<<"="<<r[0]-r[1]<<endl;
				if(r[0]-r[1]<0){
					l++;
					l+=m(abs(r[0]-r[1]));
				}
				else l+=m(r[0]-r[1]);
				break;
			}
			case 'c':{
				cout<<r[0]<<"*"<<r[1]<<"="<<r[0]*r[1]<<endl;
				l+=m(r[0]*r[1]);
				break;
			}
		}
		cout<<l<<endl;
	}
	return 0;
}

为什么答案一样,却判我错?

大佬回答必关注!!!

2023/9/12 18:19
加载中...