记录编号 |
291442 |
评测结果 |
AAAAA |
题目名称 |
[NOIP 2000PJ]计算器的改良 |
最终得分 |
100 |
用户昵称 |
安呐一条小咸鱼。 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.001 s |
提交时间 |
2016-08-07 16:21:48 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,deng,t,k;
double a;
char c;
char ch[210];
bool judge[210];
//6a-5+1=2-2a
int main()
{
freopen("computer.in","r",stdin);freopen("computer.out","w",stdout);
scanf("%s",ch+1);
n=strlen(ch+1);
for(int i=1;i<=n;i++)
{
if(ch[i]=='=')deng=i;
if(ch[i]>='a'&&ch[i]<='z')c=ch[i];
}
for(int i=1;i<=n;i++)
{
if(ch[i]==c&&i==1)
{
t++;
continue;
}
if(ch[i]==c)
{
if(ch[i-1]=='-'||ch[i-1]=='+')
{
if(i<deng&&ch[i-1]=='-')
{
t--;
}
if(i<deng&&ch[i-1]=='+')
{
t++;
}
if(i>deng&&ch[i-1]=='+')
{
t--;
}
if(i>deng&&ch[i-1]=='-')
{
t++;
}
continue;
}
int q=ch[i-1]-'0';
if(ch[i-1]>='0'&&ch[i-1]<='9')
{
k=1;
while(ch[i-k]>='0'&&ch[i-k]<='9')
{
int yyy=ch[i-k]-'0';
for(int i=1;i<k;i++)
{
yyy*=10;
}
//cout<<yyy<<" yyy "<<endl;
if(k!=1)q+=yyy;
k++;
}
}
if(i<deng)
{
if(i-k-1<1)
{
t+=q;
}
if(i-k-1>=1)
{
if(ch[i-k-1]=='+')
{
q*=-1;
}
else q*=1;
t+=q;
}
}
if(i>deng)
{
if(i-k-1<deng)
{
t-=q;
}
if(i-k-1>=deng)
{
if(ch[i-k-1]=='+')
{
q*=1;
}
else q*=-1;
t+=q;
t=-t;
}
}
}
// cout<<t<<" "<<i<<endl;
}
double qwq=0;
k=1;
int xxx=0;
if(ch[1]>='1'&&ch[1]<='9')
{
xxx+=ch[1]-'0';
while(ch[1+k]>='0'&&ch[1+k]<='9')
{
xxx*=10;
xxx+=ch[k+1]-'0';
judge[k+1]=1;
k++;
}
}
if(ch[1+k]==c)xxx=0;
for(int i=2;i<=n;i++)
{
if(ch[i]>='1'&&ch[i]<='9'&&!judge[i])
{
k=1;
int quq=ch[i]-'0';
while(ch[i+k]>='0'&&ch[i+k]<='9')
{
quq*=10;
quq+=ch[i+k]-'0';
judge[i+k]=1;
k++;
}
// cout<<qwq<<" "<<k<<" "<<i<<" "<<ch[i]<<endl;
if(ch[i+k]==c)continue;
if(i<deng)
{
if(ch[i-1]=='-')
{
qwq-=quq;
}else
{
qwq+=quq;
}
}
if(i>deng)
{
if(ch[i-1]=='-')
{
qwq+=quq;
}else
{
qwq-=quq;
}
}
}
}
//cout<<qwq+xxx<<" "<<t<<endl;
qwq+=xxx;
double a=-double(qwq/t);
printf("%c=%.3lf",c,a);
}