问题标题: 酷町堂:2172 谁能告诉我一个原因?

0
0
已解决
周俊豪
周俊豪
高级光能
高级光能

#include<iostream>
using namespace std;
long long zx(long long n,long long m){
    if(n%m==0){
        return n;
    }
    return zx(n+1,m); 
}
int main(){
    long long n,m;
    cin>>n>>m;
    cout<<zx(n,m);
    return 0;
} 

神犇们告诉个原因,谢谢~

周俊豪在2019-02-22 22:26:58追加了内容

递归写法

悲惨提交记录


0
已采纳
刘斐
刘斐
高级守护
高级守护

可以先求出最大公因数:

if(n%m==0){
    return m;
}
return zx(m,n%m); 

再把n*m的积除以最大公因数。

求采纳!

0
0
张元宝
张元宝
修练者
修练者

不用辗转相除法也行啊

    for(int i=min(a,b);i>=1;i--){
        if(a%i==0&&b%i==0){
            cout<<a*b/i;
            return 0;
         }
    }

望采纳!谢谢!

0
尹宗鑫
尹宗鑫
新手守护
新手守护
if(y==0) //如果后面的y=0返回前面的x 
    return x;
else return gcd(y,x%y);

这是辗转相除,用int 就行了

我要回答