Equal
Description
msh:吴翼,这题怎么做啊?
will:看论文去。
ql:msh,这题怎么做啊?
will:这么简单的题都不会啊!
jzt:ql,这题怎么做啊?
will: 哈哈,你等着,看哥来教你。
一日,再一次被bs之后,大家终于忍无可忍了。决定出点题难住will,好打压一下will嚣张的气焰。
不过,由于大家的智商有限,只会加减法,经过商讨,总是让will回答诸如a+b或者a-b之类的问题,似乎难不住他。终于,jzt想到一个很NB的办法:让他算a+?=b。jzt:这么NB的难题都被我想到了,哈哈!
will:这种题,看论文去……
Input
输入一个等式,形如A+B=C或A-B=C。给定其中的两个数,请确定其中的第三个数。其中0<=A,B,C<1,000,000,000,没有给定的数用一个单独的“?”表示,等式中可能会有多余空格。
Output
直接输出要求的第三个数,用回车结尾。
Sample Input 1
1+2=?
Sample Output 1
3
Sample Input 2
1 +?= 3
Sample Output 2
2
这一题数据用long long储存,注意处理空格,数字中间也会有!!!
C++ Code
/*
C++ Code
http://blog.csdn.net/jiangzh7
*/
#include<cstdio>
#include<iostream>
using namespace std;
char s[100],a[100],b[100],c[100],fh;
void read()
{
char ch[100];
gets(ch);
int count=0;
int i;
for(i=0;i<strlen(ch);i++)
if(ch[i]!=' ') s[count++]=ch[i];
i=0;
while(i<strlen(s))
{
count=0;
while(i<strlen(s))
{
if(s[i]=='+'||s[i]=='-')break;
a[count++]+=s[i];i++;
}
fh=s[i];i++;//读入符号
count=0;
while(i<strlen(s))
{
if(s[i]=='=')break;
b[count++]+=s[i];i++;
}
count=0;
i++;//跳过等号
while(i<strlen(s))
{
c[count++]+=s[i];i++;
}
}
}
long long tonum(char q[])
{
long long k=1,sum=0;
for(int i=strlen(q)-1;i>=0;i--)
{
sum+=k*(long long)(q[i]-'0');
k*=10;
}
return sum;
}
void jia(char j[],char k[]) { cout<<tonum(j)+tonum(k)<<endl; }
void jian(char j[],char k[]){ cout<<tonum(j)-tonum(k)<<endl; }
int main()
{
freopen("equal.in","r",stdin);
freopen("equal.out","w",stdout);
read();
if(fh=='+')
{
if(c[0]=='?') {jia(a,b);exit(0);}
if(b[0]=='?') {jian(c,a);exit(0);}
if(a[0]=='?') {jian(c,b);exit(0);}
}
if(fh=='-')
{
if(c[0]=='?') {jian(a,b);exit(0);}
if(b[0]=='?') {jian(a,c);exit(0);}
if(a[0]=='?') {jia(b,c);exit(0);}
}
return 0;
}