Liboy53_I_HATE_MATH @ 2024-02-12 19:24:03
为什么自己构造gcd函数RE了,但用头文件里的AC了
by xiaoshumiao @ 2024-02-12 19:30:54
@Liboy53 放个代码
by __Rickysun__ @ 2024-02-12 19:33:00
@Liboy53 头文件里的都是大佬写的,自己的我也不知道你问题出在哪里
by __Rickysun__ @ 2024-02-12 19:34:20
@Liboy53 换句话说,头文件里是系统自带的,当然没有问题(不然我们就不会用这个软件了)
by Liboy53_I_HATE_MATH @ 2024-02-12 19:50:13
AC代码
#include<bits/stdc++.h>
using namespace std;
int lcm(int a,int b){
return a*b/__gcd(a,b);
}
int main(){
int x,y,p,q,ans=0;
cin>>x>>y;
for(p=x;p<=y;p++)
{
q=x*y/p;
if(__gcd(p,q)==x&&lcm(p,q)==y)
ans++;
}
cout<<ans;
return 0;
}
by Liboy53_I_HATE_MATH @ 2024-02-12 19:54:39
非AC构造的gcd是这样
long long gcd(int a,int b)
{
return gcd(b,a%b);
}
by kevinZ99 @ 2024-02-12 19:56:07
@Liboy53
请问你的结束条件呢?????????????????????????
by yzm0325 @ 2024-02-12 19:59:47
@Liboy53 《无限递归》建议复习递归
by QWQ_HY_DFX @ 2024-02-12 20:01:11
@Liboy53
你这...结束条件没了,无限递归,按理会
int gcd(int a,int b){
if(!b)
return a;
return gcd(b,a%b);
}
by QWQ_HY_DFX @ 2024-02-12 20:02:48
不好意思稍微改下代码的细节(刚那段在编辑回复直接打的,是真的难看)
int gcd(int a,int b){
if(!b)
return a;
return gcd(b,a%b);
}
by Liboy53_I_HATE_MATH @ 2024-02-12 20:09:03
感谢各位大佬,已关,此贴终