50分求助!!

P1957 口算练习题

lpwpg @ 2023-09-05 23:23:09

#include <bits/stdc++.h>
#define int long long
using namespace std;
int len(int n){
    if(n>=0){
        int m=0;
        while(n!=0){
            m++;
            n/=10;
        }
        return m;
    }
    else{
        int m=1;
        n=-n;
        while(n!=0){
            m++;
            n/=10;
        }
        return m;
    }
}
signed main(){
    int n;
    cin>>n;
    int num1,num2,sum;
    char q;
    string t;
    for(int i=0;i<n;i++){
        cin>>t;
        if(t[0]>='a'&&t[0]<='c'){
            cin>>num1>>num2;
            switch(t[0]){
                case 'a':
                sum=num1+num2,q='+';break;
                case 'b':
                sum=num1-num2,q='-';break;
                case 'c':
                sum=num1*num2,q='*';break;
            } 
        }
        else{
            cin>>num2;
            num1=0;
            for(int i=0;i<t.size();i++){
                num1=num1*10+t[i]-'0';
            }
            sum=num1+num2;
            q='+';
        }   
    printf("%d%c%d=%d\n",num1,q,num2,sum);
  printf("%d\n",len(num1)+len(num2)+len(sum)+2);
    } 
    return 0;
}

|