我自己写了一个函数GCD计算最大公约数,在lcm最小公倍数函数之中调用GCD,报错了,求指正
#include
using namespace std;
long long n,m;
int lcm(int a,int b){
return a*b/GCD(a,b);
}
int GCD(int x,int y){
if(y == 0){
return x;
}else{
return GCD(x,x%y);
}
}
int main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
cin>>n>>m;
n = max(n,m);
m = min(n,m);
cout<<GCD(n,m)<lcm(n,m);
return 0;
}
报错信息:
[Error] "GCD" was not declared in this scope
交换一下函数顺序,lcm函数放到GCD函数之后
否则编译lcm函数时是不认识GCD函数的
#include
using namespace std;
long long n,m;
int GCD(int x,int y){
if(y == 0){
return x;
}else{
return GCD(x,x%y);
}
}
int lcm(int a,int b){
return a*b/GCD(a,b);
}
int main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
cin>>n>>m;
n = max(n,m);
m = min(n,m);
cout<<GCD(n,m)<lcm(n,m);
return 0;
}
报错信息:
[Error] "GCD" was not declared in this scope
先写GCD再写LCM啊
先写GCD再写LCM啊
第11行应该是 return GCD(y,x%y);不是return GCD(x,x%y);
应该把GCD和LCM改成这样
int GCD(int x,int y){
if(y == 0){
return x;
}
return GCD(y,x%y);
}
int lcm(int a,int b){
return a*b/GCD(a,b);
}
```c++