火山日常啰嗦
今天参加腾讯笔试,做编程题时在最小公倍数、最大公约数这些这么简单的知识点上卡壳了,自信心受到强烈的打击,下来后猛复习了这方面的相关编程知识。
有以下几个关键点:
1、任意正整数的最大公约数、最小公倍数都是它本身。
2、求两个数的最大公约数(递归法、相减法、辗转相除法)
3、求两个数的最小公倍数,两个数的最小公倍数与它们的最大公约数之间存在如下关系:
某两个数a,b的最小公倍数=(a*b)/a与b的最大公约数
4、求多个数的最大公约数可以拆解成求两个数的最大公约数的过程
5、求多个数的最小公倍数可以拆解成求两个数的最小公倍数的过程
详细解析都在以下代码中:
public class Main {
// 递归法
public static int MaxCommonNum(int left , int right){
/**
* 我始终让left>right,这不是硬性要求哈,只是我个人的编程习惯
*/
if(left
int temp = left;
left = right;
right = temp;
}
if((left%2!=0 || right%2!=0)&&(left%right!=0)) return 1;
else if((left%2!=0 || right%2!=0)&&(left%right==0)) return right;
else return 2*MaxCommonNu