#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