90 最后一个点过不去 求解 写的很抽象qwq
查看原帖
90 最后一个点过不去 求解 写的很抽象qwq
1451467
Sh1ki214楼主2024/10/18 00:42
#include<iostream>
#include<cmath>
using namespace std;
int num(int a){//求位数 
	int result=0;
	if(a<0) a=-a,result++;
	else if(a==0) return 1;
		while(a>0){
		result++;
		a/=10;
	}
	return result;
}
int main(void){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int out,ans,a,b;
		char c,sign;//sign记录符号位 
		cin>>c>>a>>b;
		ans=num(a);
		if(c!='a'&&c!='b'&&c!='c'){//如果输入不是字母 
			a+=(c-'0')*pow(10,ans);
		}
		else if(c=='a') sign='a';
		else if(c=='b') sign='b';
		else if(c=='c') sign='c';
		
		if(sign=='a'){
			out=a+b;
			ans=num(a)+num(b)+num(out)+2;
			printf("%d+%d=%d\n%d\n",a,b,out,ans);
		}
		else if(sign=='b'){
			out=a-b;
			ans=num(a)+num(b)+num(out)+2;
			printf("%d-%d=%d\n%d\n",a,b,out,ans);
		}
		else if(sign=='c'){
			out=a*b;
			ans=num(a)+num(b)+num(out)+2;
			printf("%d*%d=%d\n%d\n",a,b,out,ans);
		}
	}
	return 0;
}
2024/10/18 00:42
加载中...