ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

#luogu整理 P1022 计算器的改良:模拟

2020-04-25 19:57:53  阅读:308  来源: 互联网

标签:99999 int luogu char cnt2 P1022 计算器 asdf zrh


回忆一下自己AC的第一个黄题(模拟

luogu P1022

我们要解一元一次方程,我们就可以把它整理成一般形式(不一定是一般形式,只要能知道系数就行),然后直接根据公式求出来就好。

#include<bits/stdc++.h>
using namespace std;
char in[99999];
int l,r;
int deng;
char a='y';
int xs[99999],zrh[99999];
double xishu,changshu;
int cnt1,cnt2;
int main(){
    cin>>in;
    for(int i=0;i<strlen(in);i++){
        if(in[i]=='='){
            deng=i;
        }
        if((in[i]>'9'||in[i]<'0')&&(in[i]!='-'&&in[i]!='+'&&in[i]!='=')){
            a=in[i];
//			cout<<in[i]<<endl;
        }
    }
//	cout<<a<<endl;
    int asdf=0;
    while(r<strlen(in)){
        l=r;
        asdf=0;
        while(in[r]>='0'&&in[r]<='9'){
            r++;
        }
//		cout<<l<<' '<<r<<" ";
        if((r-l)>=1){
            for(int i=l;i<r;i++){
                asdf=asdf*10+int(in[i]-'0');
            }
            if(in[l-1]=='-') asdf*=-1;
            if(in[r]==a){
                r++;
                if(l<deng) asdf*=-1;
                xs[cnt1]=asdf;
                xishu+=xs[cnt1];
                cnt1++;
            }else{
                if(r>deng) asdf*=-1;
                zrh[cnt2]=asdf;
                changshu+=zrh[cnt2];
                cnt2++;
            }
        }
//		cout<<asdf<<endl;
        r++;
    }
    if(in[0]==a) xishu--;
    double ans;
//    cout<<xishu<<endl;
    ans=double(changshu/xishu);
    if(ans==0) ans=0;
    printf("%c=%.3f",a,ans);
    return 0;
} 

标签:99999,int,luogu,char,cnt2,P1022,计算器,asdf,zrh
来源: https://www.cnblogs.com/Cao-Yucong/p/12774896.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有