记录编号 |
206395 |
评测结果 |
AAAAA |
题目名称 |
[NOIP 2000PJ]计算器的改良 |
最终得分 |
100 |
用户昵称 |
Riolu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.012 s |
提交时间 |
2015-11-06 22:00:13 |
内存使用 |
0.67 MiB |
显示代码纯文本
- #include<cstdio>
- #include<iostream>
- #include<cstring>
- using namespace std;
- char s[99999];
- int main()
- {
- freopen("computer.in","r",stdin);
- freopen("computer.out","w",stdout);
- cin.getline(s,99998);
- int i,j;
-
-
- int len=strlen(s);
- for(i=0;i<len;i++)
- if(s[i]=='=') break;
- int d=i; //找=号的位置
- //char ans[99999];
-
- i=0;
- while(s[i]=='-'||s[i]=='+'||s[i]=='='|| ('0'<=s[i]&&s[i]<='9'))
- i++;
- char a = s[i];
- //cout<<a; 找未知数
- //cout<<d;
-
- int l=0,r=0,book[99999]={0};
- for(i=0;i<d;i++)
- {
- if(s[i]==a){
- int findn=i-1,temp=0,cheng=1;
- book[i]=1;
- while('0'<=s[findn] && s[findn]<='9' &&findn>=0)
- {temp+=(s[findn]-48)*cheng; cheng*=10;book[findn]=1;findn--;}
- if(s[findn]=='-' && findn>=0) {book[findn]=1;l-=temp;}
- if(s[findn]=='+' && findn>=0) {l+=temp;book[findn]=1;}
- if(findn==-1) l+=temp;
- }
- }
- for(i=d+1;i<len;i++)
- {
- if(s[i]==a){
- int findn=i-1,temp=0,cheng=1;book[i]=1;
- while('0'<=s[findn] && s[findn]<='9' && findn>=d)
- {temp+=(s[findn]-48)*cheng; cheng*=10;book[findn]=1;findn--;}
- if(s[findn]=='-' && findn>=0) {book[findn]=1;l+=temp;}
- if(s[findn]=='+' && findn>=0) {l-=temp;book[findn]=1;}
- if(findn==d) l-=temp;
- }
- }
- //cout<<l;
- for(i=d;i>=0;i--)
- {
- int findn;
- if('0'<=s[i] && s[i]<='9'&& book[i]==0){
- int temp=0,cheng=1;findn=i;
- while('0'<=s[findn] && s[findn]<='9' && findn>=0 )
- {temp+=(s[findn]-48)*cheng; cheng*=10;findn--;}
- if(s[findn]=='-' && findn>=0) r+=temp;
- if((s[findn]=='+' && findn>=0) || findn==-1) r-=temp;
- i=findn;
- }
- if(findn==-1) break;
- }
-
- for(i=len-1;i>d;i--)
- {
- int findn;
- if('0'<=s[i] && s[i]<='9'&& book[i]==0){
- int temp=0,cheng=1;findn=i;
- while('0'<=s[findn] && s[findn]<='9' && findn>=d )
- {temp+=(s[findn]-48)*cheng; cheng*=10;findn--;}
- if(s[findn]=='-' && findn>=0) r-=temp;
- if((s[findn]=='+' && findn>=0) || findn==-1) r+=temp;
- i=findn;
- }
- if(findn==d) break;
- }
- //cout<<r;
-
- double ans=(double)(r)/(double)(l);
- cout<<a<<"=";
- printf("%.3lf",ans);
- }