zoukankan      html  css  js  c++  java
  • Smallest Common Multiple

    FCC题目:找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。

    范围是两个数字构成的数组,两个数字不一定按数字顺序排序。

    例如对 1 和 3 —— 找出能被 1 和 3 和它们之间所有数字整除的最小公倍数。

    示例:

    smallestCommons([1, 5])应该返回一个数字。

    smallestCommons([1, 5])应该返回 60。
    smallestCommons([5, 1])应该返回 60。

    smallestCommons([1, 13]) 应该返回 360360。

    步骤:

    1.从小到大,获得最大最小值

    2.所有连续数字值从大到小

    3.获得最大公约数,辗转相除法:用小数除大数,如果余数不是零,就把余数和较小的数构成一组新数,继续上面的除法,知道大数被小数约尽,此时比较小的数就是最大公约数 80=36*2+8,36=8*4+4,8=4*2+0

    4.两个数之间的最小公倍数为两个数之积除以最大公约数。

     
     1 function smallestCommons(arr) {
     2   //从小到大,获得最大最小值
     3   arr=arr.sort(function(a,b){return a-b;});
     4   var min=arr[0];var max=arr[1];
     5   //所有连续数字值从大到小
     6   var arrtemp=[];
     7   for(var i=max;i>=min;i--){
     8     arrtemp.push(i);
     9   }
    10   //获得最大公约数,辗转相除法:用小数除大数,如果余数不是零,就把余数和较小的数构成一组新数,继续上面的除法,知道大数被小数约尽,此时比较小的数就是最大公约数 80=36*2+8,36=8*4+4,8=4*2+0 
    11   function getCommons(a,b){
    12     if(a%b===0) return b;
    13     return getCommons(b,a%b);
    14   }
    15   //两个数之间的最小公倍数为两个数之积除以最大公约数。
    16   return arrtemp.reduce(function(m,n){    
    17     return n*m/getCommons(m,n);  
    18   });  
    19 }
    20 
    21 smallestCommons([8,2]);
  • 相关阅读:
    tp文件上传
    tp5与页面链接
    tp5语法查询
    tp5基本增删改查
    tp5基本登录
    数据修改
    文件上传。判断。一维二维数组
    数据库连接
    php针对于数据库的改变
    php数据库连接
  • 原文地址:https://www.cnblogs.com/lilicat/p/6256025.html
Copyright © 2011-2022 走看看