//in main(), we make sure that a is larger than b and initialize lcmnum to the value of a
int lcm(int a, int b, int lcmnum)
{
if( lcmnum%a == 0 && lcmnum%b == 0 )
return lcmnum;
return lcm(a, b, lcmnum+a);
}
算法证明:
假定m>n
一定有:lcm=m*整数
1到这一整数的过程用m+m实行递归,但是此处在代码中不能直接使用m+m,因为在下一级调用中m的值被改变,所以需要第三个形参由它来存储返回结果,以保证我们在递归时不改变m的值