wyc0809 @ 2023-08-27 11:40:15
各位神犇,本蒟蒻代码如下: 它本地都过不了怎么办QAQ
#include<bits/stdc++.h>
using namespace std;
long long n,a,b,c,ys,kai,biao,ans;
string s;
void js(long long i){
if(i<10) ans=ans+1;
if(i>=10&&i<100) ans=ans+2;
if(i>=100&&i<1000) ans=ans+3;
if(i>=1000&&i<10000) ans=ans+4;
}
int main(){
//cin>>n;
for(int i=1;i<=n;i++){
getline(cin,s);
//cin>>s;
kai=0;
ans=2;
biao=0;
a=0;
b=0;
if(s[0]>=97&&s[0]<=100){
if(s[0]=='a') ys=1;
if(s[0]=='b') ys=2;
if(s[0]=='c') ys=3;
kai=2;
biao=2;
}
for(int j=kai;j<=s.size()-1;j++){
if(s[j]==' '){
long long wei=1;
for(int k=j-1;k>=biao;k--){
if(wei==1) a=a+s[k]-'0';
else{
a=a+(s[k]-'0')*pow(10,wei-1);
}
wei++;
}
wei=1;
for(int k=s.size()-1;k>=j+1;k--){
if(wei==1) b=b+s[k]-'0';
else{
b=b+(s[k]-'0')*pow(10,wei-1);
}
wei++;
}
}
}
js(a);
js(b);
cout<<a;
if(ys==1){
cout<<"+";
js(a+b);
c=a+b;
}
if(ys==2){
cout<<"-";
js(a-b);
c=a-b;
}
if(ys==3){
cout<<"*";
js(a*b);
c=a*b;
}
cout<<b<<"="<<c<<endl;
cout<<ans<<endl;
}
return 0;
}
by jqQt0220 @ 2023-08-27 11:50:52
可以直接用 cin 把第一串数读进来,如果是字母就存下来继续读后面两个数字,否则把他转换成数字读下一个数字。输出的时候可以用 sprintf(s,"%d+%d=%d",a,b,a+b);
这个大法把式子存到字符串里再直接算长度输出(-和*同理)
by wyc0809 @ 2023-09-03 20:51:56
@jqQt0220 还是没大理解怎么输入的可以再展开讲讲吗?谢谢QAQ
by jqQt0220 @ 2023-09-04 19:17:11
先用 cin
读入一串 sscanf(s,"%d",&a);
(是从 string
。
具体可以参考这篇题解