C++程序设计,利用递归函数求最大公约数和最小公倍数

#include <iostream>
using namespace std;
int max(int x, int y)
{
int temp;
if (x<y) {temp=x;x=y;y=temp;}
if(y==0) return x;
else
return(y,x%y);

}

int min(int a,int b)
{
int temp2;
if(a<b) {temp2=a;a=b;b=temp2;}
temp2=max(a,b);
return(a*b/temp2);

}

int main()
{
int j,k;
cout<<"请输入两个数"<<endl;
cin>>j>>k;
cout<<"这两个数的最大公约数="<<max(j,k)<<" "<<"这两个数的最小公倍数="<<min(j,k)<<endl;
return 0;
}

编译没有问题,运行出错,求大神指点。<!--<"请输入两个数"<

不是递归求解么。。
int max(int x, int y)
{
int temp;
if (x<y)
{
temp=x;x=y;y=temp;
}
if(y==0)
return x;
else
return max(y,x%y);//这里漏掉了递归调用的函数名max。。。。。
}追问

下面的min函数前也加上就报错了,不加反而可以,可以解释一下吗?

追答

哥们儿,要理解程序,不要生搬硬套啊,min里面加哪里?return(a*b/temp2);这里么?

加哪里,语法都不对,参数个数都不对。min里面不需要加啊,最小公倍数本来就是两数的积除以最大公约数,不需要递归求解了啊!

温馨提示:答案为网友推荐,仅供参考
相似回答