问题标题: 酷町堂:请问

0
0

0
已采纳
王子健
王子健
初级天翼
初级天翼
代码实现:
#include<iostream>
using namespace std;
int gcd(int x,int y)
{
    if(!y)
        return x;
    return gcd(y,x%y);
} 
int main()
{
    整形 n,m;
    输入>>n>>m;
    cout<<n/gcd(n,m)<<" "<<m/gcd(n,m);
    return 0;
}

文字理解:

如果是两个整数化简的话,那只要求出他们的最大公约数,就可以化简了。
如果是两个参数是小数的话,那就麻烦多一点了!不过,如果是小数的话,
你可以先分析两个参数是否为小数,如果为小数,找出小数点,然后乘上一
个倍数,化为整数,再求最大公约数。

网站寻访:

https://bbs.csdn.net/topics/390108606

(以上代码可以AC“3721分数化简”)

0
0
赵逸凡
赵逸凡
初级启示者
初级启示者

线型筛法没学的话就用普通筛法,效果不错,主要是针对a/b这个分数,求他们有没有互质,也就是用筛法求出他们之间的公约数。

O(sqrt(n))的时间复杂度最适合用于遍历for语句中,欧几里得算法没学过的话就用普通的for遍历,然后让他们除以一个最大公约数,这样时间复杂度会减小

0
我要回答