需要解释循环java递归代码吗
此代码用于查找可被1到20之间的所有num整除的最小数 我不明白这段代码是如何处理递归的,你能解释一下吗需要解释循环java递归代码吗,java,Java,此代码用于查找可被1到20之间的所有num整除的最小数 我不明白这段代码是如何处理递归的,你能解释一下吗 静态长gcd(长a、长b) { 如果(a%b!=0) 返回gcd(b,a%b); 其他的 返回b; } //函数返回前n个数字的lcm 静态长lcm(长n) { 长ans=1; 对于(长i=1;i这是非常数学的,但gcd代表“最大公分母”,lcm代表“最小公倍数” 主算法跟踪当前最低公倍数“ans”,并将“i”从1迭代到“n”,在本例中为20。然后将当前值乘以每个“i”,并除以“ans
静态长gcd(长a、长b)
{
如果(a%b!=0)
返回gcd(b,a%b);
其他的
返回b;
}
//函数返回前n个数字的lcm
静态长lcm(长n)
{
长ans=1;
对于(长i=1;i这是非常数学的,但gcd代表“最大公分母”,lcm代表“最小公倍数”
主算法跟踪当前最低公倍数“ans”,并将“i”从1迭代到“n”,在本例中为20。然后将当前值乘以每个“i”,并除以“ans”和“i”之间的最大公分母
gcd()方法用于计算最大公分母
算法工作的原因更多的是一个问题,这是非常数学的,但gcd代表“最大公分母”,lcm代表“最小公倍数”
主算法跟踪当前最低公倍数“ans”,并将“i”从1迭代到“n”,在本例中为20。然后将当前值乘以每个“i”,并除以“ans”和“i”之间的最大公分母
gcd()方法用于计算最大公分母
算法工作的原因更多的是一个问题,即在每个函数中放置println语句,并打印所有变量值以查看每次调用的值。在每个函数中放置println语句,并打印所有变量值以查看每次调用的值。
static long gcd(long a, long b)
{
if(a%b != 0)
return gcd(b,a%b);
else
return b;
}
// Function returns the lcm of first n numbers
static long lcm(long n)
{
long ans = 1;
for (long i = 1; i <= n; i++)
ans = (ans * i)/(gcd(ans, i));
return ans;
}
// Driver program to test the above function
public static void main(String []args)
{
long n = 20;
System.out.println(lcm(n));
}