P1689 方程求解
题目描述
给一个方程,形如X+Y=Z或X-Y=Z。给出了其中两个未知数,请求出第三个数。未知数用‘?’表示,等式中也许会出现一些多余的空格。
输入输出格式
输入格式:
一行,方程。
输出格式:
‘?’代表的值
输入输出样例
说明
0<=X,Y,Z<1,000,000,000
模拟
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 110 using namespace std; int read() { int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f; } char ch[N]; int l,s,w[4],f; int main() { gets(ch);s=1; l=strlen(ch); for(int i=0;i<l;i++) { if(ch[i]<='9'&&ch[i]>='0') w[s]=w[s]*10+ch[i]-'0'; else { if(ch[i]!=' '&&ch[i]!='?') ++s; if(ch[i]=='+') f=1; if(ch[i]=='-') f=-1; } } if(w[1]==0) w[1]=w[3]+w[2]*(-1*f),printf("%d",w[1]); else if(w[2]==0) w[2]=w[3]-w[1],printf("%d",f*w[2]); else w[3]=w[1]+f*w[2],printf("%d",w[3]); return 0; }