给一个方程,形如X+Y=Z或X-Y=Z。给出了其中两个未知数,请求出第三个数。未知数用‘?’表示,等式中也许会出现一些多余的空格。
一行,方程。
输出格式:
‘?’代表的值
样例输入1 1+2=?样例输入2 3 +? = 2输出样例#1: 复制
样例输出1 3样例输出1 -1
0<=X,Y,Z<1,000,000,000
思路:模拟
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; char sym,ch; int data[3]; char s[10005]; int k,pos,tot,n; int main(){while(scanf("%c",&ch)!=EOF){if(ch==' ') continue;if(ch=='n') break;s[n++]=ch;}tot=1;for(int i=0;i<n;i++){if(s[i]=='?'){ pos=tot;continue; } if((s[ i ]==' ')||(s[i]=='=')) continue;if((s[ i ]=='+')||(s[i]=='-')){ sym=s[i];continue; }if((s[i]<='9')&&(s[i]>='0')){k=0;while(((s[i]<='9')&&(s[i]>='0'))||(s[i]==' ')){if(s[i]==' ') i++;else{ k=k*10+s[i]-'0';i++; }if(i==n) break;}i--;data[tot++]=k;}}if(sym=='+')if(pos==3) printf("%d",data[1]+data[2]);else printf("%d",data[2]-data[1]);else if(pos==1 ) printf("%d",data[1]+data[2]);else printf("%d",data[1]-data[2] );return 0; }
转载于:.html
本文发布于:2024-02-02 19:20:22,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170687282245898.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |