解题思路:
一、求最大公约数的方法: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语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:600 |
【明明的随机数】 (C++代码)浏览:781 |
不容易系列 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:543 |
剪刀石头布 (C语言代码)浏览:752 |
IP判断 (C语言代码)浏览:763 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:576 |
Hello, world! (C++代码)浏览:1744 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:676 |
循环入门练习6 (C语言代码)浏览:968 |