“如果可以我想和你回到那天相遇,月光下转身那就是你。”
fyl来到时光机的面前,时光机上的分数计算的题目却难住了fyl,只有解开时光机上的谜题,才能回到初遇那一天。
输入格式:
输入一行字符串,为一个分数计算式。
计算式只包含+,−,/,其中/为分数线,分数线左边为分子,右边为分母。如果计算式的第一项为正不会有+,如果为负,会有前缀−。
计算式长度l(l≤1000),分子x(x≤1000),分母y(y≤1000)。题目保证输入数据合法。
输出格式:
输出一行,表示计算的结果(如果结果为整数则用整数表示,否则用最简分数表示)。保证输出数据的分子和分母均在int范围内。
输入样例1:
1/2+1/3-1/12
输出样例1:
3/4
输入样例2:
-2/4
输出样例2:
-1/2
#include<bits/stdc++.h>
using namespace std;
void split(long long &A, long long &B) {
long long g = abs(__gcd(A, B));
A /= g;
B /= g;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
char c;
long long a, b, x, y;
cin>>a>>c>>b;
split(a, b);
char cc;
while(cin>>cc>>x>>c>>y){
if(cc == '-'){
a = a * y - x * b;
b = b * y;
}else{
a = a * y + x * b;
b = b * y;
}
split(a, b);
}
if(a % b == 0)
cout<<a / b;
else
cout<<a<<"/"<<b;
return 0;
}