要求用递归函数编一个程序
求x y的最小公倍数
2015-04-09 16:46
程序代码:#include <stdio.h>
int LOCK = 0; //加锁
int g_iProduct = 0; //乘积
/*
以下是最大公约数递归
最小公倍数 = 乘积 / 最大公约数
如果非要在这份爱上加一个期限。。。咳咳,非要在递归上实现最小公倍数,那么就要把第一次传入的ab值保存起来
(我能想到的就是定义全局变量Lock,然后在第一次调用之后将锁关闭<主要是为了防止递归的时候影响到乘积的值>,
等到求出公约数再把乘积拿来计算)
int divisor(int a, int b)
{
int c = 0;
c = a % b;
if(0 == c)
{
return b;
}
else
{
divisor(b, c);
}
}
*/
//计算最小公倍数,英语不好,函数名 凑活着看
int calc(int a, int b)
{
int c = 0;
if(0 == LOCK)
{
LOCK = 1; //第一次,加上锁
g_iProduct = a * b;
}
c = a % b;
if(0 == c)
{
return (g_iProduct / b);
}
else
{
calc(b, c);
}
}
int main(void)
{
int a = 10;
int b = 8;
int c = 0;
c = calc(a, b);
printf("%d\n", c);
return 0;
}
有什么问题或者有什么好的解决方案,知识共享哈,谢谢

2015-04-09 22:23