我需要帮忙做这个循环。我的课程作业之一是制作LCM课程。
Sample output:
(8,12) LCM is 24
(4,3) LCM is 12
(5,10,20) LCM is 20
(18,24,52) LCM is 936
(12,10,26) LCM is 780
(99,63,24) LCM is 5544
(62,16,24) LCM is 1488
到目前为止,我有两个数字,但我不知道如何做3个数字。我们应该在其他类上使用方法,所以这就是我在LCM类中使用的方法。
public class LCM {
private int n, x, s = 1, t = 1;
public LCM()
{
n = 0;
x = 0;
s = 1;
t = 1;
}
public int lcmFind(int i, int y) {
for (n = 1;; n++) {
s = i * n;
for (x = 1; t < s; x++) {
t = y * x;
}
if (s == t)
break;
}
return (s);
}
}
试试吧
public int lcm(int... a) {
for (int m = 1;; m++) {
int n = a.length;
for (int i : a) {
if (m % i != 0) {
break;
}
if (--n == 0) {
return m;
}
}
}
}
我发现了这个链接,我想这是最简单和干净的解决方案:
/**
* Calculate Lowest Common Multiplier
*/
public static int LCM(int a, int b) {
return (a * b) / GCF(a, b);
}
/**
* Calculate Greatest Common Factor
*/
public static int GCF(int a, int b) {
if (b == 0) {
return a;
} else {
return (GCF(b, a % b));
}
}
如果你想得到3个数字的LCM,你可以使用你的方法lcmSearch
如下:
int a = 2;
int b = 3;
int c = 5;
LCM l = new LCM();
int lcm = l.lcmFind(l.lcmFind(a, b), c);
建议:
n
、x
、s
和t
变量设置为lcmFind
中的局部变量。因为您只需要在lcmFind
方法中使用它们,并且需要在每次调用lcmFind
时重置它们的值
编辑
如果你需要创建一个参数个数可变的方法,你应该检查varargs。所以你会得到这样的结果:
public int lcmFind(int.. args) {
// args is actually array of ints.
// calculate lcm of all values in array.
// usage: lcmFind(1,4) or lcmFind(1,5,6,3)
}
您可以使用您的第一个版本的lcmSearch
,它包含2个参数,并使用它计算许多值的lcm。
编辑2
如果您只需要2和3-args版本的lcmFind
,则只需添加3-arg版本即可:
public int lcmFind(int a, int b, int c) {
return lcmFind(lcmFind(a, b), c);
}
返回两个或两个以上数字的最小公倍数。 使用最大公约数(GCD)公式和 lcm(x,y) = x * y / gcd(x,y) 来确定最小公倍数。 GCD公式使用递归。 const lcm = (...arr) => { const gcd = (x, y) => (!y ? x : gcd(y, x % y)); const _lcm = (x, y) => x * y / gcd(x,
有人能帮我吗,我不知道如何找到最低的公共倍数。 例如,数字4和5是20。这就是我想要在代码中实现的。 谢谢你
本文向大家介绍java求最大公约数与最小公倍数的方法示例,包括了java求最大公约数与最小公倍数的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java求最大公约数与最小公倍数的方法。分享给大家供大家参考,具体如下: Gongyueshu.java文件: 此处需要由控制台输入参数,eclipse环境运行的设置步骤为Run》Run Configurations进入运行的调试配置界面
Python3 实例 以下代码用于实现最小公倍数算法: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # 定义函数 def lcm(x, y): # 获取最大的数 if x > y: greater = x else: greater = y while(True): if((greater % x == 0) a
本文向大家介绍PHP编程求最大公约数与最小公倍数的方法示例,包括了PHP编程求最大公约数与最小公倍数的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP编程求最大公约数与最小公倍数的方法。分享给大家供大家参考,具体如下: PS:这里再为大家推荐几款在线计算工具供大家参考使用: 在线一元函数(方程)求解计算工具: http://tools.jb51.net/jisuanqi/eq
本文向大家介绍js计算最大公约数和最小公倍数代码实例,包括了js计算最大公约数和最小公倍数代码实例的使用技巧和注意事项,需要的朋友参考一下 一、计算最大公约数 1、小学时候一般采用质因数分解法,一般使用短除得到结果,下面用一种最初级的方法求最大公约数 2、使用欧里几德算法,辗转相除法。具体原理自行百度。下面给出两种代码算法 递归 迭代 二、最小公倍数,最小公倍数的算法,是两个数的乘积除以最大公倍数