问题标题: 酷町堂:3795内存溢出

0
0
已解决
宫西诚
宫西诚
修练者
修练者
#include<bits/stdc++.h>
using namespace std;
long long gcd(long long n,long long m)
{
    if(m%n==0)
    return n;
    return gcd(n,m%n);
}
int main()
{
    long long n,m,a,b,fz,fm,i;
    cin>>n>>m>>a>>b;
    fz=n*a;
    fm=m*b;
    i=gcd(fz,fm);
    if(i==fm)
    cout<<fz/fm;
    else
    cout<<fz/i<<"/"<<fm/i;
}

递归


2
0
0
王光裕
王光裕
资深光能
资深光能

把函数改一下:

 if(x==0) 
    return y;
 return gcd(x,y%x);
0
陈胤廷
陈胤廷
修练者
修练者

    将函数改成:

    if(m%n==0)
    return n;
    return gys(m%n,n);

0
栾峻岩
栾峻岩
初级天翼
初级天翼

gcd函数有问题,改一下:

 

long long gcd(long long n, long long m){
     if (!n)
        return m;
     return gcd(n,m%n);
}

 

辗转相除法模板一定要记熟!

0
储维
储维
中级光能
中级光能

第7行

return gcd(n,m%n); 参数写反了,改成return gcd(m%n,n);

话说你的栈竟然没爆

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

思路:

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

2.求最大公因数

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

即可

我要回答