open judge求最大公约数

#include <iostream>
using namespace std;

int max_Commondivisor(int a, int b) {
if (a % b != 0) max_Commondivisor(b, a % b);
else return b;
}
int main() {
int x, y;
cin >> x >> y;
if (x > y) cout << max_Commondivisor(x, y);
else cout << max_Commondivisor(y, x);
return 0;
}
我的输出结果也是3 为什么一直说wrong answer?

int max_Commondivisor(int a, int b) {
if (a % b != 0) max_Commondivisor(b, a % b);
else return b;
}

==这个函数有问题,if(a%b !=0) return max_Commondivisor(b, a % b);

应该是算法没写对。

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
typedef long long ll;

ll Gcd(ll a,ll b) {
    if(b==0) return a;
    return Gcd(b,a%b);
}

ll gcd,lcm,minn=10000000,a,b;

int main() {
    cin>>gcd>>lcm;
    ll i,j;
    if(lcm%gcd!=0){
        cout<<"0"<<endl;
        return 0;
    }
    for(i=1;i<=100000;i++) {
        j=gcd*lcm/i;
        a=gcd*i;
        if(gcd*lcm%a==0){
            b=gcd*lcm/a;
            if(Gcd(a,b)==gcd){
                if(minn>=a+b) {
                    minn=a+b;
                }
            }           
        }

    }   
    cout<<minn<<endl;   
}

 

啥意思,都没看到你输入啥,谁一直说wrong answer啊?

这个复制过去也不对诶  我的那个代码在vs2019运行9 6的结果是3  但是一直报错   哭了

#include<iostream>
using namespace std;

int gcd(int a,int b){
    if(a%b==0)
        return b;
    return gcd(b,a%b);
}
int main(){
    int a=10,b=8;
    cin>>a>>b;
    cout<<gcd(a,b);
    return 0;
}

你试试

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y