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

0
0
已解决
黄品翔
黄品翔
初级光能
初级光能

题目描述 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

10分错误代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long int a,b,r=1,x,y;
    cin>>a>>b;
    x=a;
	y=b;
    while(r!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    cout<<x/a<<"/"<<y/a;
    return 0;
}

请各位大佬帮忙找错    !!!(3)    !!!!!!!(7)    !!!!!!!!!(9)    !!!!!(5)

感谢!!!

黄品翔在2019-02-26 18:38:27追加了内容

题目描述 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

10分错误代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long int m1,n1,m2,n2;
    cin>>m1>>n1>>m2>>n2;
    m1*=m2;
    n1*=n2;
    int x=m1,y=n1;
    int r=m1%n1;
    while(r)
    {
        m1=n1;
        n1=r;
        r=m1%n1;
    }
    cout<<x/n1<<'/'<<y/n1;
    return 0;
}

请各位大佬帮忙找错    !!!(3)    !!!!!!!(7)    !!!!!!!!!(9)    !!!!!(5)

感谢!!!


0
已采纳
张舒斌
张舒斌
中级光能
中级光能

因为当分母=1时,此时的最简分数应该是分子除以分母,也就是分子,你在最后得判断一下。

如:

(4 * 4) / (2 * 2) = 16/4 = 4

按照你的写法,答案就会是4/1,那么就是错误

0
0
王翰闻
王翰闻
新手守护
新手守护

但警方和机顶盒机顶盒上的

0
0
傅文彬
傅文彬
新手天翼
新手天翼

思路:

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

2.求最大公因数

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

即可

0
宫西诚
宫西诚
修练者
修练者

递归

long long gcd(long long n,long long m)
{
   if(m%n==0)
    return n;
   return gcd(m%n,n)

main函数自己写

我要回答