洛谷 P1689 方程求解

阅读: 评论:0

洛谷 P1689 方程求解

洛谷 P1689 方程求解

P1689 方程求解

题目描述

给一个方程,形如X+Y=Z或X-Y=Z。给出了其中两个未知数,请求出第三个数。未知数用‘?’表示,等式中也许会出现一些多余的空格。

输入输出格式

输入格式:

 

一行,方程。

 

输出格式:

 

‘?’代表的值

 

输入输出样例

输入样例#1: 复制
样例输入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 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23