解题思路:
一、求最大公约数的方法:1.穷举法(容易想,但是比较慢) 2.辗转相除法 3.更相减损法。这里我们介绍第二种方法;
二、求最小公倍数的方法:1.穷举法 2.假设x和y的最大公约数为temp,那么最小公倍数为x*y/z。这里我们用第二种方法
三、辗转相除法的步骤,先看示例:
x = 5 , y = 7;
max = 7 , min = 5;
7 % 5 = 2;
5 % 2 = 1;
2 % 1 = 0;
那么最大公约数就是1
看到这里大家应该有些眉目了,就是先拿x和y中的max%min , 假如结果为0,那么min就是最大公约数;
否则,temp = max%min, max = min, min = temp;也就是让max=min,min等于刚刚整除的结果;
一直循环下去,直到结果为0,最后的min就是最大公约数;
四、求最小公倍数:
公式为: x*y/z , z是它们的最大公约数;
那么,最小公倍为:5*7/1 = 35;
注意事项:
注意退出循环的条件
参考代码:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int max = Math.max(a, b);
int min = Math.min(a, b);
while(true)
{
if(max % min==0)
{
System.out.print(min+" ");
System.out.println(a*b/min);
break;
}
else
{
int temp = max%min;
max = min;
min = temp;
}
}
sc.close();
}
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复