求改

P1957 口算练习题

HZY1618yzh @ 2024-12-28 23:53:01

#include<bits/stdc++.h>
using namespace std;
int n,a,b,h;
string s,f;
int c(int h,int u=0){
    if(h==0)return 1;
    if(h<0){
        u++;
        h=-h;
    }
    while (h!=0) { 
        h=h/10; 
        u++; 
    }
    return u;
}
int strToInt(const std::string& str){ 
    int num=0; 
    for(int i=str.size()-1;i>=0;i--){ 
        num=num*10+(str[i]-'0'); 
    } 
    return num;
}
int main(){
    cin>>n;
    for(int z=0;z<n;z++){
        h=0;
        cin>>f;
        if(f=="a"||f=="b"||f=="c"){
            s=f;
            cin>>a;
        }else
            a=strToInt(f);
        cin>>b;
        h=c(a)+c(b);
        if(s=="a"){
            cout<<a<<'+'<<b<<'='<<a+b<<endl;
            cout<<h+c(a+b)+2;
        }else if(s=="b"){
            cout<<a<<'-'<<b<<'='<<a-b<<endl;
            cout<<h+c(a-b)+2;
        }else if(s=="c"){
            cout<<a<<'*'<<b<<'='<<a*b<<endl;
            cout<<h+c(a*b)+2;
        }
        cout<<endl;
    }
    return 0;
}

本代码为什么只有60分?题目中的条件都考虑到了······


|