找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。
范围是两个数字构成的数组,两个数字不一定按数字顺序排序。
例如对 1 和 3 —— 找出能被 1 和 3 和它们之间所有数字整除的最小公倍数。
如果你被卡住了,记得开大招 Read-Search-Ask 。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
找出两个数字之间所有数字整除的最小公倍数。思路是先求出最大数和第二大数的最小公倍数,然后拿这个数求与倒序其他的数的最小公倍数。最小公倍数数动态更新的,比如,[2,6]
第一次求出6和5的最小公倍数是30;第二次求30与4的最小公倍数得到结果是60,再求60与3之间的最小公倍数还是60;直到最后返回这个最小公倍数。
function smallestCommons(arr) { if(arr instanceof Array){ if(arr.length<=1||arr.length>2){ return false; } else{ if(arr[0]===arr[1]){ return arr[0]; } else{ var result,mirror,min,max; if(arr[0]>arr[1]){ max = arr[0]; min = arr[1]; } else{ max = arr[1]; min = arr[0]; } result = max*(max-1); for (var i =max-2; i >= min; i--) { var j=2; mirror=result; while(mirror%i!==0&&j<=i){ mirror=result*j; j++; } result = mirror; } return result; } } } else{ return false; } }
还有一点是给定的数组可能不按大小顺序,这里用两个变量存储了最大数和最小数。代码不重要,重要的是思路,童靴们有更好的想法请不吝赐教。