java 最小众倍数

编程入门 行业动态 更新时间:2024-10-08 06:26:51

java 最<a href=https://www.elefans.com/category/jswz/34/1767931.html style=小众倍数"/>

java 最小众倍数

方法一:暴力搜索。复杂度等于搜索下限减去上限: 搜索下限:第3大的数。

搜索上限:前3小的数的乘积。

方法二:寻找所有三个数的组合的最小众倍数,取其中最小的那个。复杂度等于O(n^3),n为输入数的个数,本题 n = 5。

如何求3个数a,b,c的最小众倍数? 求出b*c,a*c的最大公约数A;

求出a*c,a*b的最大公约数B;

求出A,B的最大公约数C;

使用(a*b*c) / C即得到结果。

代码如下: import java.util.Scanner;

public class Main {

public static void main(String[] args) {

int[] nums = new int[5];

Scanner sc = new Scanner(System.in);

for (int i = 0; i < 5; i++) {

nums[i] = sc.nextInt();

}

System.out.println(zbs(nums));

}

public static int zbs(int[] seq) {

int min = Integer.MAX_VALUE;

for (int i = 0; i < seq.length; i++) {

for (int j = i+1; j < seq.length; j++) {

for (int k = j+1; k < seq.length; k++) {

min = Math.min(min, findZBS(seq[i], seq[j], seq[k]));

}

}

}

return min;

}

public static int findZBS(int a, int b, int c) {

return (a*b*c) / GCD(GCD(b*c, a*c), GCD(a*c, a*b));

}

public static int GCD(int a, int b) {

int c;

while ( b != 0 ) {

c = a % b;

a = b;

b = c;

}

return a;

}

}

更多推荐

java 最小众倍数

本文发布于:2024-02-07 11:13:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756305.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小众   倍数   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!