gpt4 book ai didi

java - 需要解释循环java递归代码

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:35 25 4
gpt4 key购买 nike

This code is for finding the smallest number divisible by all num from 1 to 20 I dont understand how this code works on recursion can u pleases explain this it wil be helpful

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));

}

最佳答案

这非常数学化,但 gcd 代表“最大公分母”,lcm 代表“最小公倍数”。

主要算法跟踪当前的最小公倍数“ans”,并从 1 到“n”迭代“i”,在本例中为 20。然后将当前值乘以每个“i”,并除以“ans”和“i”之间的最大公约数。

gcd() 方法使用 Euclid's algorithm计算最大公约数

算法起作用的原因更多的是 https://math.stackexchange.com/ 的问题

关于java - 需要解释循环java递归代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56315868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com