社区讨论
84pts求调
P1022[NOIP 2000 普及组] 计算器的改良参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @milhadpj
- 此快照首次捕获于
- 2025/11/30 16:48 3 个月前
- 此快照最后确认于
- 2025/12/03 10:05 3 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int main(){
string s,s1,s2;
char c;
cin>>s;
for(int i=0;i<s.length();i++){
if(s[i]=='=')
s1=s.substr(0,i),s2=s.substr(i+1);
}
int ch=0,in=0;
if(s1[0]!='-')
s1='+'+s1;
if(s2[0]!='-')
s2='+'+s2;
for(int i=0;i<s1.length();){
int st=i;
i++;
while(i<s1.length() && s1[i]!='+' && s1[i]!='-'){
i++;
}
s=s1.substr(st,i-st);
char x=s[s.length()-1];
if('0'<=x && x<='9')
in+=stoi(s);
else{
c=x;
if(s.length()!=2)
ch-=stoi(s.substr(0,s.length()-1));
else{
if(s[0]=='+')
ch--;
if(s[0]=='-')
ch++;
}
}
}
for(int i=0;i<s2.length();){
int st=i;
i++;
while(i<s2.length() && s2[i]!='+' && s2[i]!='-'){
i++;
}
s=s2.substr(st,i-st);
char x=s[s.length()-1];
if('0'<=x && x<='9')
in-=stoi(s);
else{
c=x;
if(s.length()!=1)
ch+=stoi(s.substr(0,s.length()-1));
else{
if(s[0]=='+')
ch++;
if(s[0]=='-')
ch--;
}
}
}
double x=in*1.0/ch;
if(x==(-0.000))
cout<<0.000;
else
cout<<c<<"="<<fixed<<setprecision(3)<<x;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...