我试图让一个欧拉问题:现在我的速度限定步骤是计算两个数的最小公倍数。那么,哪一种方法更快?为什么?速度的最小公倍数算法(JAVA)
public static int lcm(int a, int b){
for(int test = a; true; test += a){
if(test % b == 0)
return test;
}
}
或
public static int lcm(int a, int b){
for(int i = 1; true; i++){
if(i*a % b == 0)
return i*a;
}
}
我认为什么是最根本的问题在这里是一个比较快的过程,乘法或加法。
谢谢。
(之前要求我展示我的代码的其余部分/说我不应该专注于我的程序的这一部分:我的问题不是如何得到问题的答案,但如何使这部分更快。)
这两种方法应该几乎完全相同 - 他们做的事情完全一样(正如人们所说的,首先优化算法,然后优化代码)。唯一的区别是第二个使用乘法与加法相比,应该是一个比第一个更小的边界。 – sashkello