背景
早上刚做完腾讯的笔试,感觉被血虐,好多数学的方法都忘了。
1.求最大公因子(最大公约数)
例如,求(5,6):
∵ 5÷6=0(余5)
∴(5,6)=(6,5);
∵ 6÷5=1(余1)
∴(6,5)=(5,1);
∵ 5÷1=5(余0)
∴ (1,0)=1;
∴ (5,6)=1;
public static long LCM(int a,int b){
return b==0?a:LCM(b,a%b);
}
2.求最小公倍数
算法:把两个数相乘,然后除最大公约数。下面的示例可以求多个数的最小公倍数:
public static int LCM(int... in){
int length=in.length;
int min=1;
for(int i=0;i<length;i++)
min=(int) ((min*in[i])/LCM(min,in[i]));
return min;
}
总结
以后得好好总结一下算法的题目,多关注一下。