• 洛谷 P1689 方程求解


    题目描述

    给一个方程,形如X+Y=Z或X-Y=Z。给出了其中两个未知数,请求出第三个数。未知数用‘?’表示,等式中也许会出现一些多余的空格。

    输入输出格式

    输入格式:

     

    一行,方程。

     

    输出格式:

     

    ‘?’代表的值

     

    输入输出样例

    输入样例#1: 复制
    样例输入1
    1+2=?
    
    样例输入2
    3 +? =  2
    输出样例#1: 复制
    样例输出1
    3
    
    样例输出1
    -1

    说明

    0<=X,Y,Z<1,000,000,000

    思路:模拟

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char sym,ch;
    int data[3];
    char s[10005];
    int k,pos,tot,n;
    int main(){
        while(scanf("%c",&ch)!=EOF){
            if(ch==' ') continue;
            if(ch=='
    ') break;
            s[n++]=ch;
        }
        tot=1;
        for(int i=0;i<n;i++){
            if(s[i]=='?'){ pos=tot;continue; } 
            if((s[ i ]==' ')||(s[i]=='='))    continue;
            if((s[ i ]=='+')||(s[i]=='-')){ sym=s[i];continue; }
            if((s[i]<='9')&&(s[i]>='0')){
                k=0;
                while(((s[i]<='9')&&(s[i]>='0'))||(s[i]==' ')){
                    if(s[i]==' ')    i++;
                    else{ k=k*10+s[i]-'0';i++; }
                    if(i==n)    break;
                }
                i--;
                data[tot++]=k;
            }
        }
        if(sym=='+')
            if(pos==3)    printf("%d",data[1]+data[2]);
            else    printf("%d",data[2]-data[1]);
        else if(pos==1 )    printf("%d",data[1]+data[2]);
        else printf("%d",data[1]-data[2] );
        return 0;
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    1.python的一些规范
    linux 命令总结
    【背包专题】D
    【算法入门竞赛经典】【7.2枚举排列】
    【练习赛补题】问题 E: 花生采摘 【模拟】
    【背包专题】B
    【背包专题】A
    【ACM对拍程序~】
    【背包专题】E
    河南省第七届大学生程序设计竞赛 问题 A: 物资调度【简单dfs】
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7887125.html
Copyright © 2020-2023  润新知