90分求助,最后一个点A不掉
查看原帖
90分求助,最后一个点A不掉
1313080
MJonethree楼主2025/1/22 07:06
#include<bits/stdc++.h>
using namespace std;
char a[60],now;
int n,x[60],y[60],add[60];

int digit(int m){
	if(m>0){
		int cnt=0;
		while(m>0){
			cnt++;
			m/=10;
		}
		return cnt;
	}
	else if(m<0){
		m=abs(m);
		int cnt=0;
		while(m>0){
			cnt++;
			m/=10;
		}
		cnt+=1;
		return cnt;
	}
	else if(m==0) return 1;
}

int cf(int n){
	int cnt=1;
	for(int i=1;i<=n;i++) cnt*=10;
	return cnt;	
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]!='a'&&a[i]!='b'&&a[i]!='c'){
			add[i]=a[i]-'0'; 
			a[i]=a[i-1];
		} 
		cin>>x[i]>>y[i];
	} 
	for(int i=1;i<=n;i++){
		if(add[i]==0){
			if(a[i]=='a') cout<<x[i]<<"+"<<y[i]<<"="<<x[i]+y[i]<<endl<<digit(x[i])+digit(y[i])+2+digit(x[i]+y[i])<<endl;
			else if(a[i]=='b') cout<<x[i]<<"-"<<y[i]<<"="<<x[i]-y[i]<<endl<<digit(x[i])+digit(y[i])+2+digit(x[i]-y[i])<<endl;	
			else if(a[i]=='c') cout<<x[i]<<"*"<<y[i]<<"="<<x[i]*y[i]<<endl<<digit(x[i])+digit(y[i])+2+digit(x[i]*y[i])<<endl;
		}
		else{
			x[i]+=add[i]*cf(digit(x[i]));
			if(a[i]=='a') cout<<x[i]<<"+"<<y[i]<<"="<<x[i]+y[i]<<endl<<digit(x[i])+digit(y[i])+2+digit(x[i]+y[i])<<endl;
			else if(a[i]=='b') cout<<x[i]<<"-"<<y[i]<<"="<<x[i]-y[i]<<endl<<digit(x[i])+digit(y[i])+2+digit(x[i]-y[i])<<endl;
			else if(a[i]=='c') cout<<x[i]<<"*"<<y[i]<<"="<<x[i]*y[i]<<endl<<digit(x[i])+digit(y[i])+2+digit(x[i]*y[i])<<endl;
		}
	}
	return 0;
}
2025/1/22 07:06
加载中...