• 算式


    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
    ",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);
            }
        }
    } 
     
  • 相关阅读:
    函数基础
    全局变量与类似配置文件的模块文件
    global语句(python学习手册422页)
    作用域实例
    变量名解析:LEGB原则
    作用域
    第三方库安装方法
    s[-1]和s[len(s)-1]
    查找特定后缀的文件
    logging日志管理-将日志写入文件
  • 原文地址:https://www.cnblogs.com/lipu123/p/12799218.html
Copyright © 2020-2023  润新知