zoukankan      html  css  js  c++  java
  • 洛谷 P1022 计算器的改良

    题目背景

    NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。

    题目描述

    为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:

    4+3x=8

    6a-5+1=2-2a

    -5+12y=0

    ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三个数学符号(当然,符号“-”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。

    你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。

    输入输出格式

    输入格式:

     

    一个一元一次方程。

     

    输出格式:

     

    解方程的结果(精确至小数点后三位)。

     

    输入输出样例

    输入样例#1: 复制
    6a-5+1=2-2a
    
    输出样例#1: 复制
    a=0.750
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char s[100000];
    char c;
    int flag,bns,ff;
    int len,sum1,sum2,k1,k2;
    int main(){
        scanf("%s",s);
        len=strlen(s);
        for(int i=0;i<len;i++){
            if(s[i]=='='){ sum1+=-1*bns*(ff?-1:1);bns=0;flag=1;ff=0;continue; }
            if(!flag){
                if(s[i]>='0'&&s[i]<='9'){ bns*=10;bns+=s[i]-'0'; }
                else if(s[i]>='a'&&s[i]<='z')    k1+=bns*(ff?-1:1),c=s[i],bns=0;
                else{
                    sum1+=-1*bns*(ff?-1:1);
                    if(s[i]=='-')    ff=1;
                    else if(s[i]=='+')    ff=0;
                    bns=0;
                }
            }
            else{
                if(s[i]>='0'&&s[i]<='9'){ bns*=10;bns+=s[i]-'0'; }
                else if(s[i]>='a'&&s[i]<='z')    k2+=-1*bns*(ff?-1:1),c=s[i],bns=0;
                else{
                    sum2+=bns*(ff?-1:1);
                    if(s[i]=='-')    ff=1;
                    else if(s[i]=='+')    ff=0;
                    bns=0;
                }
            }
        }
        sum2+=bns*(ff?-1:1);
        printf("%c=%.3lf",c,(sum1+sum2)*1.0/(k1+k2)*1.0);
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    MQTT TLS 加密传输
    python多进程并发redis
    各种消息队列的特点
    mqtt异步publish方法
    Numpy API Analysis
    Karma install steps for unit test of Angular JS app
    reinstall bower command
    Simulate getter in JavaScript by valueOf and toString method
    How to: Raise and Consume Events
    获取对象的类型信息 (JavaScript)
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7967304.html
Copyright © 2011-2022 走看看