Description
Victor是一位很著名的科学家,在他的研究工作中经常要进行分数的运算。
为了提高工作效率,Victor决定设计一个简易的分数计算器,该计算器能够进行分数的加、减、乘、除运算,并能将结果化为最简分数和带分数。
假设参加运算的分数都不是带分数,并将整数看作分母为1的分数。
你能发挥聪明才智,帮助Victor设计出这个分数计算器吗?
(1)分数乘法法则可归结为:
分数乘以分数,用分子相乘的积作分子,分母相乘的积作分母。
(2)分数除法法则可归结为:
甲数除以乙数(0除外),等于甲数乘以乙数的倒数。例如:
Input
第一行:输入第一个分数的分子和分母。 第二行:输入运算符。 第三行:输入第二个分数的分子和分母。
Output
以q/p的形式输出运算结果的最简分数;是假分数的还要化为带分数,先输出整数部分,再输出后面部分。
Samples
输入数据 1
2 3
+
1 4
Copy
输出数据 1
11/12
Copy
输入数据 2
3 7
/
1 2
Copy
输出数据 2
6/7
Copy
Limitation
1s, 1024KiB for each test case
CODE:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,m,a,s;
char d;
cin>>n>>m>>d>>a>>s;
int z=0,x=0;
if(d=='*')z=n*a,x=m*s;
if(d=='/')z=n*s,x=m*a;
if(d=='+')z=n*s+m*a,x=m*s;
if(d=='-')z=n*s-m*a,x=m*s;
int asd=__gcd(z,x);
z=z/asd;
x=x/asd;
if(z/x>0)cout<<z/x<<" ";
cout<<z%x<<"/"<<x;
return 0;
}