问题标题: 酷町堂:3795 分数乘法

0
0
已解决
许天奕
许天奕
新手守护
新手守护

3795 分数乘法

题目描述 Description

酷町猫最近在学习分数,它想用自己学到的计算机知识,来计算分数乘法的结果。 输入两个分数a,b,求出它们相乘的结果。 例如: (2/4) * (2/4) ,它们的结果为:(2 * 2) / (4 * 4) = 4/16 = 1/4。

(4/2) * (4/2) ,它们的结果为:(4 * 4) / (2 * 2) = 16/4 = 4。

输入描述 Input Description

输入4个空格隔开的整数a1,a2,b1,b2。分别表示分数a的分子,分母,分数b的分子,分母。

输出描述 Output Description

输出分数a*b的结果(需要约分)。

样例输入 Sample Input

2 4 2 4

样例输出 Sample Output

1/4

错误代码(Wrong Answer 40分):

#include<bits/stdc++.h>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
#include<ctime>
using namespace std; 
int main()
{
    int a1,a2,b1,b2,ji,ji2,x,y,r=1;
    cin>>a1>>a2>>b1>>b2;
    ji=a1*b1;
    ji2=a2*b2;
    x=ji;y=ji2;
    while(r){
        r=ji%ji2;
        ji=ji2;
        ji2=r;
    }
    cout<<x/ji<<"/"<<y/ji;
    return 0;
}

 

许天奕在2019-01-22 10:35:04追加了内容

求大佬思路及错误原因


0
已采纳
傅文彬
傅文彬
新手天翼
新手天翼

思路:

1.先将分子和分母各乘一下

2.求最大公因数

3.用乘好的结果除最大公因数

即可

0
我要回答