算式

msh:will,这题怎么做啊?
will:看论文去。
ql:msh,这题怎么做啊?
will:这么简单的题都不会啊!
jzt:ql,这题怎么做啊?
will:哈哈,你等着,看哥来教你。
一日,再一次被bs之后,大家终于忍无可忍了。决定出点题难住will,好打压一下will嚣张的气焰。
不过,由于大家的智商有限,只会加减法,经过商讨,总是让will回答诸如a+b或者a-b之类的问题,似乎难不住他。终于,jzt想到一个很NB的办法:让他算a+?=b。jzt:这么NB的难题都被我想到了,哈哈!
will:这种题,看论文去……

输入

输入一个等式,形如A+B=C或A-B=C。给定其中的两个数,请确定其中的第三个数。其中0<=A,B,C<1,000,000,000,没有给定的数用一个单独的“?”表示,等式中没有多余空格。

输出

直接输出要求的第三个数,用回车结尾。 

样例输入 Copy

【样例1】
1+2=?
【样例2】
1+?=3

样例输出 Copy

【样例1】
3
【样例2】
2
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<map>
#include<string> 
#include <math.h> 
#include<memory.h>
#include<cstring>
using namespace std; 
using namespace std;
typedef long long ll; 
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
const int INF=0x3f3f3f3f;
const int maxn=1e6+10;
string a;
void inint(){
    cin>>a;
}
int main(){
    inint();
    int len=a.size();
//    cout<<len<<endl;
//    printf("%c\n",a[len-1]);
    if(a[0]=='?'){
        int flag;//1+//2-
        if(a[1]=='+'){
            flag=1;
        }
        else if(a[1]=='-'){
            flag=2;
        }
        ll sum1=0;
        ll sum2=0;
        int k;
        for(k=2;k<len;k++){
            if(a[k]=='='){
                break;
            }
            sum1=sum1*10+(a[k]-'0'); 
        }
        for(int i=k+1;i<len;i++){
            sum2=sum2*10+(a[i]-'0');
        }
        if(flag==1){
            printf("%lld",sum2-sum1);
        }
        else if(flag==2){
            printf("%lld",sum1+sum2);
        }
    }
    else if(a[len-1]=='?'){
        ll sum1=0;
        ll sum2=0;
        int k;
        int flag;
        for(k=0;k<len;k++){
            if(a[k]=='+'||a[k]=='-'){
                break;
            }
            sum1=sum1*10+(a[k]-'0');
        }
        if(a[k]=='+'){
            flag=1;
        }
        else if(a[k]=='-'){
            flag=2;
        }
        for(int i=k+1;i<len;i++){
            if(a[i]=='='){
                break;
            }
            sum2=sum2*10+(a[i]-'0');
        }
        if(flag==1){
            printf("%lld",sum1+sum2);
        }
        else if(flag==2){
            printf("%lld",sum1-sum2);
        }
    }
    else{
        ll sum1=0;
        ll sum2=0;
        int k;
        int flag;
        for(k=0;k<len;k++){
            if(a[k]=='+'||a[k]=='-'){
                break;
            }
            sum1=sum1*10+(a[k]-'0');
        }
        if(a[k]=='+'){
            flag=1;
        }
        else if(a[k]=='-'){
            flag=2;
        }
        for(int i=k+3;i<len;i++){
            sum2=sum2*10+(a[i]-'0');
        }
        if(flag==1){
            printf("%lld",sum2-sum1);
        }
        else if(flag==2){
            printf("%lld",sum1-sum2);
        }
    }
} 

 

 
posted @ 2020-04-28 23:52  哎呦哎(iui)  阅读(218)  评论(0编辑  收藏  举报