华为-求最小公倍数
(java实现)
题目描述:
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
示例1:
输入
5 7
输出
35
问题分析:
两种思路
思路一:分别求出两个数的约数,然后再删除重复的约数,最后将去重后的约数相乘,所得即是最小公倍数。
思路二:两数相乘,再除以最大公约数,所得即是最小公倍数。但关键点在于求最大公约数,这个可以使用连续求余数法(具体数学定理)。
参考代码是依据思路二来实现的。
相关知识:
略
算法实现:
略
参考代码:
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int na = input.nextInt();
int nb = input.nextInt();
int maxDivisor = getMaxDivisor(na,nb);
System.out.println(na*nb/maxDivisor);
}
public static int getMaxDivisor(int na, int nb)
{
int tmp;
if (na < nb)
{
tmp = na;
na = nb;
nb = tmp;
}
while(na%nb != 0)
{
tmp = na%nb;
na = nb;
nb = tmp;
}
return nb;
}
}
查看13道真题和解析
腾讯成长空间 1100人发布