我的蓝桥杯代码仓:https://github.com/617076674/lanqiao
题目描述:
知识点:欧几里得最大公约数算法、贪心算法
思路:三重循环寻找最大的最小公倍数
(1)如果N == 1,显然最大的最小公倍数是1。
(2)如果N == 2,显然最大的最小公倍数是2。
(3)如果N >= 3,设最大的最小公倍数是max,初始化max = 0,外重循环递减,循环范围是[N, 0]且满足i * (i - 1) * (i - 2)) >= max,第二重循环也是递减,循环范围是[i - 1, 0]且满足i * j * (j - 1) >= max,第三重循环也是递减,循环范围是[j - 1, 0]且满足i * j * k >= max。一旦发现i,j,k三个数互相之间的最大公约数均是1,即break出最内层循环。
时间复杂度不好计算,空间复杂度是O(1)。
JAVA代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if(1 == n) {
System.out.println(1);
}else if(2 == n) {
System.out.println(2);
}else {
long max = 0;