perfectbit222 @ 2022-09-22 14:18:09
可过测试点
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
int cc,dd,sum,sum1,summ=1;
int len1,len2;
int m;
char b,bb;//b存储第一位
cin>>a;
string c;
string s1,d;//定义输入字符串
int aaa,bbb;
for(int A=1;A<=a;A++)//开始下面的运算
{
cin>>c;
{
//switch (c)
//{
if (c=="a"){
m=1;
cin>>c>>d;//输入第一个数字和第二个数字
len1=c.size();
len2=d.size();//求出两个数字长度
cc=atoi(c.c_str());
dd=atoi(d.c_str());//把字符串类型强制转换为int
sum = cc+dd;
if (sum<0)
{
summ=2;
}
else
{
summ=1;
}
sum1=abs(sum);
while(sum1>=10)
{
sum1=sum1/10;
summ++;
}
cout<<cc<<"+"<<dd<<"="<<sum<<endl<<(len1+len2+summ+2);
//break;
}
else if(c=="b")
//case 'b':
{
m=2;
cin>>c>>d;//输入第一个数字和第二个数字
len1=c.size();
len2=d.size();//求出两个数字长度
cc=atoi(c.c_str());
dd=atoi(d.c_str());//把字符串类型强制转换为int
sum = cc-dd;
sum1=abs(sum);
if (sum<0)
{
summ=2;
}
else
{
summ=1;
}
while(sum1>=10)
{
sum1=sum1/10;
summ++;
}
cout<<cc<<"-"<<dd<<"="<<sum<<endl<<(len1+len2+summ+2);
}
//break;
//case 'c':
else if (c=="c")
{
m=3;
cin>>c>>d;//输入第一个数字和第二个数字
len1=c.size();
len2=d.size();//求出两个数字长度
cc=atoi(c.c_str());
dd=atoi(d.c_str());//把字符串类型强制转换为int
sum = cc*dd;
sum1=abs(sum);
if (sum<0)
{
summ=2;
}
else
{
summ=1;
}
while(sum1>=10)
{
sum1=sum1/10;
summ++;
}
cout<<cc<<"*"<<dd<<"="<<sum<<endl<<(len1+len2+summ+2);
//break;
}
else{
if(m==1)
{
cin>>d;//输入第一个数字和第二个数字
len1=c.size();
len2=d.size();//求出两个数字长度
cc=atoi(c.c_str());
dd=atoi(d.c_str());//把字符串类型强制转换为int
sum = cc+dd;
if (sum<0)
{
summ=2;
}
else
{
summ=1;
}
sum1=abs(sum);
while(sum1>=10)
{
sum1=sum1/10;
summ++;
}
cout<<cc<<"+"<<dd<<"="<<sum<<endl<<(len1+len2+summ+2);
}
else if(m==2)
{
cin>>d;//输入第一个数字和第二个数字
len1=c.size();
len2=d.size();//求出两个数字长度
cc=atoi(c.c_str());
dd=atoi(d.c_str());//把字符串类型强制转换为int
sum = cc-dd;
sum1=abs(sum);
if (sum<0)
{
summ=2;
}
else
{
summ=1;
}
while(sum1>=10)
{
sum1=sum1/10;
summ++;
}
cout<<cc<<"-"<<dd<<"="<<sum<<endl<<(len1+len2+summ+2);
}
else if (m==3)
{
cin>>d;//输入第一个数字和第二个数字
len1=c.size();
len2=d.size();//求出两个数字长度
cc=atoi(c.c_str());
dd=atoi(d.c_str());//把字符串类型强制转换为int
sum = cc*dd;
sum1=abs(sum);
if (sum<0)
{
summ=2;
}
else
{
summ=1;
}
while(sum1>=10)
{
sum1=sum1/10;
summ++;
}
cout<<cc<<"*"<<dd<<"="<<sum<<endl<<(len1+len2+summ+2);
//}
}
}
}
}
}
by xlpri @ 2022-09-22 15:30:00
建议简短一下,可以不用高精度,它的数据范围是
"运算数为非负整数且小于 10000"
所以最大才10^8 ,使用 int 即可
我猜测这个代码大多数是 TLE
by xlpri @ 2022-09-22 15:33:44
最后尽量不要调用万能库,容易超时
by xlpri @ 2022-09-22 15:35:14
@perfectbit222
by perfectbit222 @ 2022-09-22 15:36:01
@xlpri 嗯嗯